Redis 主从同步

redis 主从同步

在讨论主从同步之前先说一个概念,CAP

CAP 分布式存储的理论基石

C:Consistency 一致性
A:Availability 可用性
P:Partition tolerance 分区容错性
关系图如下:
在这里插入图片描述

一位不愿意透露姓名的大佬说:

It states, that though its desirable to have Consistency, High-Availability and Partition-tolerance in every system, unfortunately no system can achieve all three at the same time.
即:在分布式系统的设计中,没有一种设计可以同时满足一致性,可用性,分区容错性 3个特性 

小解释下:分布式系统一般是分布在不同的节点上,而且是网络分区的,这就意味着总有网络不稳定的时候,这种现象大家叫他"网络分区",万一网络波动了,我说万一哈,那两个分布式节点无法通信,主节点的修改操作无法同步到从节点,所以你需要进行二选一:1、停止对主节点的修改功能,即牺牲可用性确保一致性 2 保证系统可用,牺牲一致性

redis 主从同步

最终一致性

redis 主从同步是异步的,因此分布式的redis系统不满足一致性要求,就算主从断开连接,主节点也能正常读写,所以分布式下的redis是满足可用性的。但是,redis从节点一直在向主节点看齐,一直在努力的追赶主节点,最终会达到一直。如果出现网络分区,主从数据出现大量的不一致,单一旦网络恢复从节点便会通过各种策略追赶上主节点,因此redis保证最终一致性。

增量同步

主节点会将自己状态发生变化的指令通过字节流的方式记录到本地buffer中,然后异步将buffer中指令同步到从从节点,从节点会及时返回自己同步的偏移量。buffer是一个圆环,当主从网络长时间断开,则buffer则会被后面的数据覆盖掉,网络恢复后则会造成数据不一致。需要快照同步来弥补

快照同步

即rdb,需要住主节点执行下bigsave上将数据全部同步到磁盘上,然后同步到从节点,从节点会清除自己的存储,全量加载rdb文件。从节点同步时,主节点还在增加buffer,如果又被覆盖了,那么又需要进行一次快照同步,会造成循环。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值