在redis集群规范这里https://redis.io/topics/cluster-tutorial https://redis.io/topics/cluster-tutorial它提到
however note that Redis Cluster does not implement strong consistency even when synchronous replication is used:
it is always possible under more complex failure scenarios that a slave that was not able to receive the write is elected as master.
如果我发出 WAIT 命令
WAIT 0 <No.Of Salves>
然后我强制以牺牲可用性为代价在所有从站中写入数据。您能否解释一下在这种情况下同步复制如何无法满足上述一致性要求https://redis.io/topics/cluster-tutorial https://redis.io/topics/cluster-tutorial
具体来说,我想了解复杂的故障场景,即当我发出命令时,无法接收写入的从站被选为主站WAIT 0 <No.OfSlaves>
主节点可能会在 WAIT 返回之前发生故障,即写操作尚未复制到所有从节点。在这种情况下,一些从站已经同步了这些写操作,而其他从站还没有同步。当Redis Cluster尝试选举新的master时,它可能会选举出一个尚未完全同步的slave,并且写入将永远丢失。
即使写操作已完全同步到所有从站,并且其中一个从站已被选举为新的主站,这些写操作也可能会丢失。例如,如果新的 master 在将这些写操作转储到磁盘之前重新启动。如果这个新的master在新的选举触发之前回来,这些写操作就会丢失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)