Redis主从集群两种数据丢失的情况
1、主从异步复制导致的数据丢失
- 拿三节点的集群举例(majority=3/2+1=2,quorum设置的是2),当master node宕机过后,Slave节点还没有完成异步数据的复制(goosip协议进行广播同步),而哨兵节点监听到Master节点宕机过后,就开始了选举,另一个从节点被提升成了新的Master node,引发了部分数据的丢失,该如何解决?
2、集群脑裂导致的数据丢失
2. master node 和slave node 出现了网络故障,无法连接上,但是master node还活着,Client还在进行增删改操作,堆积了大量的数据,而Sentinal认为master已经挂掉,进行了新的选举,其中一个slave node成了新的master node,但是没有最新的数据,当网络恢复过后,原来的master node 当做一个新的slave node 加入了新的集群,丢失了部分数据,引发了数据不一致丢失的问题,如何解决?