https://redis.io/topics/cluster-tutorial 指出 Redis 集群不是强一致性的。即使启用了 WAIT,它声明的原因是:
- 更新未同步到的节点将成为主节点
- 在分区之后和节点超时之前,少数分区中的主节点不断接收更新。
如果对于键 k,我们找到主节点 M 和副本 r1,r2 怎么办......RN 使用
CLUSTER SLAVES node-id
.并执行
WAIT N
并且只有在返回 N 时才继续交易?这是否总是确保在执行事务之前数据完美同步。这难道不能确保强大的一致性吗?
不,它仍然不能保证。
尽管WAIT
返回 N,这意味着所有副本都已确认内存中的写入,但在将这些写入操作写入磁盘之前,这些节点可能会失败。