redis5集群如何主动手工切换主从节点命令


    目录
  • redis5集群主动手工切换主从节点命令
  • redis集群主从复制不生效的问题
    • 集群信息
    • 基本情况
    • 问题分析
    • 问题解决
  • 总结

    redis5集群主动手工切换主从节点命令
    以集群模式登录到待切换的从节点,然后执行CLUSTER FAILOVER命令,执行成功则显示OK,即完成主从切换
    示例:
    9003是切换之前的从节点:
    
redis-cli -p 9003 -c
127.0.0.1:9003> CLUSTER FAILOVER
OK

    如果不小心登录到了主节点,也没有关系
    节点会提示如下错误:
    
    redis-cli -p 9007 -c
    127.0.0.1:9007> CLUSTER FAILOVER
    (error) ERR You should send CLUSTER FAILOVER to a replica
    如果执行报错或者master连接不上,还可以尝试在命令后追加FORCE和TAKEOVER参数用于强制切换,FORCE需要多数masters同意,TAKEOVER则不需要多数masters同意。
    详见官方《CLUSTER FAILOVER [FORCE|TAKEOVER]》
    redis集群主从复制不生效的问题
    集群信息
    Redis版本:5.0
    集群规模:三主三从
    基本情况
    在项目中为了达到高可用的目的,使用了Redis集群,搭建过程同Redis Cluster集群原理+三主三从交叉复制实战+故障切换。
    但是在实际使用中发现,集群方式比单点模式故障率还要高,集群高可用配置似乎未生效。
    在开发环境模拟单节点故障时,发现集群不具备单节点故障自动恢复功能,手动恢复故障节点后,节点最新信息未同步,必须将所有节点杀掉重新搭建才能恢复正常。
    在分析的过程中确认了以下问题:
    1.搭建后的集群通过cluster info/nodes指令查看,均显示集群信息正常;
    2.单个主节点故障后,对应的从节点未切换,集群不可用;
    3.从节点数据量为0,在主节点的任何操作,均未同步至从节点,主从节点复制未实现。
    4.各节点服务器防火墙均关闭,各节点端口间通信正常。
    5.在从节点使用指令info replication查看时发现,其与主节点间连接状态为“down”,在对应的主节点查看发现主节点连接的从节点数量为0。说明集群的主从关系并未建立成功。
    
    
    问题分析
    查看从节点日志发现,在从节点与主节点建立连接的过程中,身份认证未通过。
    但是该Redis集群中所有节点的配置中均通过requirepass字段设置了相同的密码,这个错误出现的似乎没有道理。
    
    
    MASTER aborted replication with an error: NOAUTH Authentication required
    参考以上内容发现需要在从节点中配置“masterauth”字段。
    问题解决
    在所有从、主(主节点故障后可能成为从节点)节点的配置文件即redis.conf中配置“masterauth”字段,内容与各节点的requirepass字段(各节点requirepass字段内容一致)一致。
    
    配置完成后,重启从节点,查看从节点日志,主从复制正常。
    
    再次在从节点执行info replication发现,从节点与主节点通信正常,集群状态正常。
    集群实现主从复制。
    
    总结
    以上为个人经验,希望能给大家一个参考,也希望大家多多支持电脑手机教程网。