前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis节点复制

Redis节点复制

作者头像
吉林乌拉
发布2019-10-30 11:53:36
6200
发布2019-10-30 11:53:36
举报
文章被收录于专栏:吉林乌拉吉林乌拉

在分布式系统中为了解决单点登陆问题,通常会把数据复制多个副本并部署到不同的机器上来解决此类问题。那么Redis也一样,在集群环境,怎么保证不同的实例与实例之间Redis数据的一致呢?答案就是Redis中的复制功能。在这一篇中我们主要介绍Redis有关复制功的内容。


  • 建立复制

默认情况下Redis都是主节点,但在复制情况下Redis实例通常会被划分为主节点(master)和从节点(slave),并且每个从节点只有一个主节点,而主节点可以同时有多个从节点。除此之外Redis复制的时候,只能从主节点复制到从节点,而不能从从节点复制到主节点。下面我们了解一下怎么配置Redis中的复制功能。


配置复制的方式主要有以下三种:

  1. 在配置文件中加入slaveof{masterHost}{masterPort}。
  2. 在redis-server启动命令后加入--slaveof{masterHost}{masterPort}
  3. 直接使用命令:slaveof{masterHost}{masterPort}

下面我们启用两个端口来演示Redis复制的功能。

slaveof配置都是在从节点发起的,所以上图中命令执行完成后,会将6379作为主节点,6380作为从节点,并且如上图所示,当我在6379主节点中执行set操作,在6380从节点中已经成功获取到的value值,说明Redis的复制功能已经成功了。

slaveof命令是异步命令,执行slaveof命令时,节点只保存主节点信息饭后返回,后续的复制操作在节点的内部异步执行。当主从节点复制功能建立成功时,可以使用info repliication命令查看复制相关状态。具体操作如图所示:


  • 断开复制

slaveof命令不但可以建立复制,还可以在从节点执行slaveof no one断开与主节点复制关系。断开复制主要有两大流程:

  1. 断开与主节点复制关系
  2. 从节点晋升为主节点。

备注:从节点断开复制后并不会清除原有数据,只是无法继续从主节点获取数据。通过slaveof命令还可以实现切主操作。那么顾名思义切主操作,就是从节点更换主节点。在Redis中执行slaveof{newMasterIp}{newMasterPort}命令即可完成切主操作。切主操作主要流程如下:

  1. 断开与旧主节点复制关系
  2. 与新节点建立复制关系
  3. 删除从节点当前所有数据
  4. 对新主节点进行复制操作

备注:正是因为切主操作会将从节点的数据全部清除掉,所以在生产环境中执行切主操作时要特别注意。


下图为断开复制与切主操作的详细流程:


下图演示了断开复制的具体操作:


下图演示了切主操作的具体操作:


上述内容就是Redis中的复制相关的知识,如有不正确的地方,欢迎留言,在下一篇中我们将重点了解Redis复制功能中的一主一从及一主多从结构,谢谢。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吉林乌拉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档