searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Redis cluster集群报错故障合集

2023-07-11 11:29:22
104
0

一、redis连接集群error

这种情况一般是因为启动redis-cli时没有设置集群模式所导致

./redis-cli -c -h <ip> -p <port> -a <password>

 

二、集群关闭后重启报错

[ERR] Node 192.168.12.232:7000 is not empty.

Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解决方法:

1)、停止所有redis进程,将需要新增的节点下aof、rdb等本地备份文件删除;

2)、同时将新Node的集群配置文件删除,删除你redis.conf里面cluster-config-file所在的文件,一般为nodes.conf;

3)、再次添加新节点如果还是报错,则登录新Node,./redis-cli -c -h <ip> -p <port> -a <password> 对redis数据库进行清除:

192.168.12.232:7000>  flushdb      #清空当前数据库

启动redis进程重新执行集群新建

三、Redis (error) NOAUTH Authentication required

出现认证问题,应该是设置了认证密码,输入密码既可以啦

注意密码是字符串形式! auth “yourpassword”

 

四、Redis集群状态异常

进入redis客户端,查看集群状态,执行命令:cluster nodes,发现slave存在一节点存在fail

解决方法:

  • 节点摘除:cluster forget <>     fail状态的节点ID
  • 重启该节点redis服务
  • 针对该节点启动后重新加入集群:cluster replicate <> 原master节点ID

如果master节点挂了,备节点会主动升主,所以指定的节点永远是master节点

 

五、.Redis集群使用中突然挂掉

5.1、背景

通过三台机器搭建了Redis高可用集群,每台机器部署两个redis实例,形成三主三从节点。故障发生于一台机器磁盘爆掉,导致整个Redis集群异常,影响整个网络业务的创建。

5.2、问题分析

Redis集群异常原因: 故障机器运行了集群两个master节点,宕机后导致集群选举机制异常,不能自动进行主从切换。

机器宕机原因: redis运行主要依赖内存,RDB期间会消耗大量内存,内存不足导致机器异常。

5.3、问题处理

1)手动进行redis主从切换

/var/redis/cluster/7000/bin/redis-cli -c -h <slave-ip> -p <slave-port> -a <pwd> CLUSTER FAILOVER

2)异常机器重启恢复redis及相关组件服务

3)脚本巡检redis集群状态,检查主机存在一套redis集群两个master节点的,进行手动切换

5.4、反思总结

1)监控机制覆盖不够全面,没监控同一台机器存在双master场景;

2)机器资源分配评估不到位,应考虑极端RDB场景;

3)最后,从研发角度看待redis集群故障问题,发现团队对高可用底层原理、中间件熟悉度不够,除了加强原理学习之外,在部署相关组件时还要多做实操验证,另外监控覆盖不到位也会留下隐患。

0条评论
0 / 1000
taketomoon
2文章数
0粉丝数
taketomoon
2 文章 | 0 粉丝
taketomoon
2文章数
0粉丝数
taketomoon
2 文章 | 0 粉丝
原创

Redis cluster集群报错故障合集

2023-07-11 11:29:22
104
0

一、redis连接集群error

这种情况一般是因为启动redis-cli时没有设置集群模式所导致

./redis-cli -c -h <ip> -p <port> -a <password>

 

二、集群关闭后重启报错

[ERR] Node 192.168.12.232:7000 is not empty.

Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

解决方法:

1)、停止所有redis进程,将需要新增的节点下aof、rdb等本地备份文件删除;

2)、同时将新Node的集群配置文件删除,删除你redis.conf里面cluster-config-file所在的文件,一般为nodes.conf;

3)、再次添加新节点如果还是报错,则登录新Node,./redis-cli -c -h <ip> -p <port> -a <password> 对redis数据库进行清除:

192.168.12.232:7000>  flushdb      #清空当前数据库

启动redis进程重新执行集群新建

三、Redis (error) NOAUTH Authentication required

出现认证问题,应该是设置了认证密码,输入密码既可以啦

注意密码是字符串形式! auth “yourpassword”

 

四、Redis集群状态异常

进入redis客户端,查看集群状态,执行命令:cluster nodes,发现slave存在一节点存在fail

解决方法:

  • 节点摘除:cluster forget <>     fail状态的节点ID
  • 重启该节点redis服务
  • 针对该节点启动后重新加入集群:cluster replicate <> 原master节点ID

如果master节点挂了,备节点会主动升主,所以指定的节点永远是master节点

 

五、.Redis集群使用中突然挂掉

5.1、背景

通过三台机器搭建了Redis高可用集群,每台机器部署两个redis实例,形成三主三从节点。故障发生于一台机器磁盘爆掉,导致整个Redis集群异常,影响整个网络业务的创建。

5.2、问题分析

Redis集群异常原因: 故障机器运行了集群两个master节点,宕机后导致集群选举机制异常,不能自动进行主从切换。

机器宕机原因: redis运行主要依赖内存,RDB期间会消耗大量内存,内存不足导致机器异常。

5.3、问题处理

1)手动进行redis主从切换

/var/redis/cluster/7000/bin/redis-cli -c -h <slave-ip> -p <slave-port> -a <pwd> CLUSTER FAILOVER

2)异常机器重启恢复redis及相关组件服务

3)脚本巡检redis集群状态,检查主机存在一套redis集群两个master节点的,进行手动切换

5.4、反思总结

1)监控机制覆盖不够全面,没监控同一台机器存在双master场景;

2)机器资源分配评估不到位,应考虑极端RDB场景;

3)最后,从研发角度看待redis集群故障问题,发现团队对高可用底层原理、中间件熟悉度不够,除了加强原理学习之外,在部署相关组件时还要多做实操验证,另外监控覆盖不到位也会留下隐患。

文章来自个人专栏
分布式缓存服务Redis
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0