redis集群发生数据丢失的情况

redis集群发生数据丢失的情况


一、redis集群脑裂

  • 一般redis集群如果有很多设备,一主多从,比如master与其他的slaves的网络连接出现故障了,然后没有master的那些哨兵节点,由于与master失去了联系,然后就会自行选举出一个新的master出来,所以这样会存在一个集群里面两个master,无论新过来的写请求在哪一个master上,另外一个master将不会去同步这些信息,尤其是当网络恢复的时候,哨兵集群会将原来的master节点降级为salve,如果在网络尚未恢复期期间,新的数据写入仍然是基于原来的master的,那么网络恢复后,原来的master降级为slave后它的新增的那些数据也将会丢失,不能同步到其他的节点上去。

二、master宕机

  • 由于redis主从之间是采用异步的方式来进行数据同步的,所以可能某些数据还没有同步到slave上,master就宕机了,然后slave自动提升为主节点,这样就会导致最后这一部分没来得及同步的数据丢失了。

三、解决方案

  • 不能完全阻止redis数据的丢失,但是可以适当的减少可能丢失的数据,可以调整min-slaves-to-write参数为1和min-slaves-max-lag参数位10,这表示,要保证至少有一个slave连接上了,且这个slave的数据同步的延迟在10秒之内,否则这个master将会拒绝提供写入服务
  • 这样的话,对于脑裂来说,一旦检测到master与slaves失去联系了,只会丢失从最近一次发送数据到slaves的时候到检测到与slaves失去联系的一段时间的数据,之后就会拒绝写入请求,但是同时也会使该master变得不可用。
  • 而对于master宕机导致主备切换,也最多只会丢失10秒的数据量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值