redis哨兵主从切换下数据丢失

文章探讨了在Redis集群中遇到的两种数据丢失情况:一是由于网络问题导致的异步复制延迟,当master宕机时数据丢失;二是网络分区引发的脑裂,恢复后可能导致数据丢失。为防止这种情况,Redis配置中的min-slaves-to-write和min-slaves-max-lag参数要求至少3个slave节点在10秒内与master保持同步,否则master拒绝新请求,以此保障数据一致性,但牺牲了可用性。

(1)异步数据丢失问题:
当集群节点间网络或其他问题导致异步复制延时很高,如果此时master宕机了,
毫无疑问会丢失延时的这段时间的数据当集群节点间网络或其他问题导致异步复制延时很高,
如果此时master宕机了,毫无疑问会丢失延时的这段时间的数据
(2)脑裂问题:
当网络分区变化导致master和slave节点之间无法正常通信时,sentinel哨兵集群会选举
slave为master,此时与之前master连接的client一直发送数据,当我们进行恢复将原master
当做新master的slave节点的时候,那么后来一直发送到原master内存的数据会丢失

解决上述两种数据丢失的问题,redis配置文件中有以下两行:
min-slaves-to-write 3
min-slaves-max-lag 10
意味着至少要有3个slave节点与master保持10秒钟以内的数据同步,否则master就不会
接受新的请求,我们需要采取其他措施来应对

总的来看:遵从CAP理论的 CP,牺牲了A(可用性)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值