Redis多个主节点之间是否可以同步 单节点故障后其余节点能否正常工作
Redis多主节点常见问题解答
多个主节点之间是否可以互相同步?
首先需要澄清「多主节点」对应的两种常见部署场景,答案有明显区别:
- 如果你指的是Redis原生分片集群
Redis Cluster下的多个主节点:这类主节点各自负责不同的哈希槽(对应不同的key集合),互相之间不会进行数据同步,仅会和自身挂载的从节点之间做主从数据同步。 - 如果你指的是同一数据集支持多节点写入、所有主节点存储全量数据且互相同步的架构:Redis原生完全不支持这种多主同步能力,需要使用第三方衍生版本或商业方案实现,比如开源分支KeyDB、Redis Enterprise的多活功能等。
单个主节点故障下线后其余主节点是否可以正常运行?
同样分两种场景说明:
Redis Cluster分片集群场景
- 若故障主节点挂载了至少1个正常运行的从节点,集群会自动触发故障转移,将符合条件的从节点晋升为新的主节点接管对应哈希槽,其余正常主节点完全不受影响,集群可以正常对外提供服务。
- 若故障主节点没有挂载从节点,该主节点负责的哈希槽会处于缺失状态,默认配置下整个集群会进入不可用状态,无法处理任何读写请求。
第三方多主同步架构场景
绝大多数多主方案都基于多数派存活的一致性策略,只要剩余正常运行的主节点数量超过总主节点数的一半,其余主节点都可以正常对外提供读写服务,故障节点恢复后会自动从其他主节点同步缺失的数据完成补全。
内容的提问来源于stack exchange,提问作者igaro4ak337
相关产品推荐
相关产品推荐

