6节点Redis集群:原主节点重启后能否强制恢复为主节点?
让故障恢复的Redis原主节点重新成为主节点的方法
Redis Cluster默认不会自动让故障恢复的原主节点恢复初始主角色,不过可以通过手动操作或配置优先级辅助的方式实现需求:
一、手动强制故障转移(最直接方式)
当原主节点重启恢复后,它会成为故障时晋升的新主节点的从节点。此时登录到原主节点执行以下命令,可强制触发故障转移:
CLUSTER FAILOVER TAKEOVER
该命令无需集群多数节点同意,直接将原主节点切换回主角色,原晋升的主节点会自动转为从节点。注意:切换过程中该节点负责的哈希槽会短暂中断服务,需提前评估业务影响。
二、通过节点优先级配置辅助(半自动化)
Redis节点的replica-priority(Redis 6及之前版本为slave-priority)配置项决定从节点被选为新主的优先级,数值越低优先级越高:
- 给原主节点配置更低优先级(如在
redis.conf中设置replica-priority 50) - 给它对应的原从节点(故障时晋升的节点)配置更高优先级(如
replica-priority 200)
这种配置的作用是:当原主节点恢复后,若当前主节点(原从节点)出现故障或不可用,集群会优先选择原主节点重新晋升为主。但如果当前主节点正常运行,集群不会自动触发切换,仍需手动执行上述故障转移命令。
注意事项
- 不建议使用
CLUSTER SETSLOT手动分配槽位的方式,操作复杂且易引发集群状态异常。 - 操作前建议备份数据,避免数据丢失。
内容的提问来源于stack exchange,提问作者rdaniel
相关产品推荐
相关产品推荐

