redis主从原理

redis主从原理

redis主从原理,master第一次将rdb文件给slave后,之后master接收到的每一条指令,是如何传输到slave的,每次都是只要master的rdb文件增加一条指令,就会将此rdb文件全量的同步给salve吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
快乐撸猫少年 2020-04-22 11:11:39

主从第一次建立连接后,会触发全量复制。master节点会执行bgsave命令基于当前内存快照保存RDB文件到master节点本地,而不是用之前的生成的RDB文件。然后master节点就会把RDB文件通过网络传输发送给slave节点。由于这个时候master节点还会响应写命令,所以在这个传输期间会把写命令数据保存到积压缓冲区里面。当slave节点加载完成RDB文件后,master节点再把缓冲区的数据发送给从节点,保证主从节点数据一致性。slave节点完成RDB文件加载后,master都是通过缓存区内把写命令数据发给slave节点,而不是再次通过rdb文件。

Java架构师讲师团 2020-04-13 10:55:13

在第一次同步完成以后,主从其实他们的数据都是一致的,如果这个时候你做了其他的写操作,比如更新或删除或新增了一个key,那么这个命令在master执行完以后,需要同步给slave的,当slave也执行完以后,那么主从再次回到一致的状态

  • 提问者 陈大白_666 #1
    那么这个命令在master执行完以后,需要同步给slave的。 想老师上面所说,比如是一个新增的一个指令,这个指令具体是如何给到slave的,是master将这个歌命令加入到rdb文件,然后将此rdb文件复制到salve吗?此处针对rdb文件的复制应该是增量的吧,不是全部文件里的命令吧
    2020-04-14 09:17:56
  • 不是rdb,就是一个命令发过去,新增啊,更新啊,删除啊这样的写命令。比如 set k v,这个命令自己master执行完以后会发给slave,如此就保持数据同步了
    2020-04-14 10:28:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师