面试官:Redis主从复制时网络开小差了怎么整?( 二 )
网络开小差了上面的流程我们已经知道了正常情况下主从节点的复制过程了 , 但是当网络中断导致主从连接失败等异常情况下 , 主从同步又是如何来进行的?
在这里要提到一个增量复制的名词 , 与全量复制不同的是 , 它是根据主从节点的偏移量来进行数据同步的 。
什么意思呢?
还记得在全量复制里我们所提到过的缓冲区吗?就是用来存储生成 RDB 文件后的写命令的 , 这里我们称为缓冲区A 。 主从节点断开连接后 , 除了会将后续接收到的写命令写入缓冲区A的同时 , 还会写入到另一个缓冲区B里 。
在缓冲区B里 , 主从节点分别会维护一个偏移量 offset 。 刚开始时 , 主节点的写位置与从节点的读位置在同一起点 , 随着主节点的不断写入 , 偏移量也会逐渐增大 。 同样地 , 从节点复制完后偏移量也在不断增加 。
文章插图
当网络断开连接时 , 从节点不再进行同步 , 此时主节点由于不断接收新的写操作的偏移量会大于从节点的偏移量 。 当连接恢复时 , 从节点向主节点发送带有偏移量的psync 命令 , 主节点根据偏移量来进行比较 , 只需将未同步写命令同步给从节点即可 。
总结主从一致性原理
- 从节点第一次进行连接时 , 主节点会生成 RDB 文件进行全量复制 , 同时将新写入的命令存储进缓冲区 , 发送给从节点 , 从而保证数据一致性;
- 为了减少数据同步给主节点带来的压力 , 可以通过从节点级联的方式进行同步 。
- 网络断连重新连接后 , 主从节点通过分别维护的偏移量来同步写命令 。
如果觉得本文对你有帮助 , 可以转发关注支持一下
- 蛋壳公寓|官媒发声:绝不能让“割韭菜者”一跑了之!
- 表达|重磅!2021世界安防博览会官方宣贯会正式召开,百余家企业表达参展意愿
- 公司|LVMH首席数字官跳槽至加密数字钱包公司Ledger
- 成为佛山移动服务体验官 表白留言赢取百元话费
- Store|在BlueMail的App Store反垄断案中 法官作出有利于苹果公司的判决
- 正式|首批体验官正式招募!仰望高端定制,OriginOS玩法大搜罗
- 全新|首批支持5款机型,vivo开启OriginOS首批体验官招募
- 全新|OriginOS招募首批体验官,网友:先冲为敬
- 无人|无人维护?官方打脸:Element UI for Vue 3.0 来了!
- 代言人|OPPO官宣“周冬雨”成为新代言人,周冬雨排列难道会被用上?