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

 更新时间:2024年01月18日 10:17:18   作者:pengpengzhou  
这篇文章主要介绍了redis5集群如何主动手工切换主从节点命令,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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发现,从节点与主节点通信正常,集群状态正常。

集群实现主从复制。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解在Redis在Centos7上的安装部署

    详解在Redis在Centos7上的安装部署

    Redis是一种高级key-value数据库。这篇文章主要介绍了详解在Redis在Centos7上的安装部署,有兴趣的可以了解一下。
    2016-12-12
  • Redis和springboot 整合redisUtil类的示例代码

    Redis和springboot 整合redisUtil类的示例代码

    这篇文章主要介绍了Redis和springboot 整合redisUtil类的示例代码,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Windows环境部署Redis集群

    Windows环境部署Redis集群

    这篇文章主要为大家详细介绍了Windows环境部署Redis集群的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • redis-cli -p 6379 info命令详解

    redis-cli -p 6379 info命令详解

    这篇文章主要介绍了redis-cli -p 6379 info命令详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Redis连接池配置及初始化实现

    Redis连接池配置及初始化实现

    这篇文章主要介绍了Redis连接池配置及初始化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • redis cluster支持pipeline的实现思路

    redis cluster支持pipeline的实现思路

    本文给大家介绍redis cluster支持pipeline的实现思路,在 cluster 上执行 pipeline 可能会由于 redis 节点扩缩容 中途 redirection 切换连接导致结果丢失,具体细节问题请参考下本文
    2021-06-06
  • Redis如何实现分布式锁

    Redis如何实现分布式锁

    相信大家对锁已经不陌生了,本文主要介绍了Redis如何实现分布式锁,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • redis2.8配置文件中文翻译版

    redis2.8配置文件中文翻译版

    这篇文章主要介绍了redis2.8配置文件中文翻译版,本文翻译了配置文件中的参数说明,非常详细,需要的朋友可以参考下
    2015-06-06
  • 如何解决缓存数据不一致性问题

    如何解决缓存数据不一致性问题

    文章主要讨论了缓存和数据库数据一致性的问题,包括数据不一致的原因、查询和更新数据的逻辑、缓存双删方案以及优化建议
    2025-01-01
  • redis分布式锁及会出现的问题解决

    redis分布式锁及会出现的问题解决

    这篇文章主要给大家介绍了关于redis分布式锁及会出现问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论