基础信息
Unbutu 20.04
docker版本: 20.10.12
redis:6.2.6
公网ip:172.121.123.221
redis密码:123456
redis集群搭建后端口:7361-7366
情况描述
7361节点 作为7365主节点 的从节点, 挂掉了,连接异常
CLUSTER NODES
显示
66a2c25d60cc09668556d31c6c60d2295cd23f01 172.121.123.221:7365@17365 master - 0 1650980674000 24 connected 0-5460
6fe7fb71742d0ad2ea3efb3040839bb847497181 172.121.123.221:7363@17363 master - 0 1650980673977 61 connected 10923-16383
744d1b2124f2bcac5fd0b3385dd72dfc1174f757 172.121.123.221:7366@17366 myself,slave 28cb9508463a378b630dbe6d851302981cedead1 0 1650980672000 62 connected
28cb9508463a378b630dbe6d851302981cedead1 172.121.123.221:7362@17362 master - 0 1650980673000 62 connected 5461-10922
18c9b2a4882e64e0c11a3e4421d60d70e1c9c43f 172.121.123.221:7361@17361 slave,fail 66a2c25d60cc09668556d31c6c60d2295cd23f01 1650829373510 1650829373510 24 disconnected
971d4e19bd40771273177e8fdb2df9c3da4eb026 172.121.123.221:7364@17364 slave 6fe7fb71742d0ad2ea3efb3040839bb847497181 0 1650980674580 61 connected
18c9b2a4882e64e0c11a3e4421d60d70e1c9c43f 172.121.123.221:7361@17361 slave,fail 66a2c25d60cc09668556d31c6c60d2295cd23f01 1650829373510 1650829373510 24 disconnected
解决方案
redis-cli --cluster help 可以查看redis cluster命令
1. 移除7361节点
连入5个正常redis节点客户端, 以下命令输入5次, 应该有更好的办法
cluster forget 18c9b2a4882e64e0c11a3e4421d60d70e1c9c43f
CLUSTER NODES
会显示
66a2c25d60cc09668556d31c6c60d2295cd23f01 172.121.123.221:7365@17365 master - 0 1650980674000 24 connected 0-5460
6fe7fb71742d0ad2ea3efb3040839bb847497181 172.121.123.221:7363@17363 master - 0 1650980673977 61 connected 10923-16383
744d1b2124f2bcac5fd0b3385dd72dfc1174f757 172.121.123.221:7366@17366 myself,slave 28cb9508463a378b630dbe6d851302981cedead1 0 1650980672000 62 connected
28cb9508463a378b630dbe6d851302981cedead1 172.121.123.221:7362@17362 master - 0 1650980673000 62 connected 5461-10922
971d4e19bd40771273177e8fdb2df9c3da4eb026 172.121.123.221:7364@17364 slave 6fe7fb71742d0ad2ea3efb3040839bb847497181 0 1650980674580 61 connected
从节点没了
2. 准备一个正常可用的redis节点
配置文件如下
# redis.conf
protected-mode no
port 7361
masterauth 123456
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.121.123.221
cluster-announce-port 7361
cluster-announce-bus-port 17361
appendonly yes
3. 添加从节点
66a2c25d60cc09668556d31c6c60d2295cd23f01是7365节点id, 指7361节点作为7365主节点的从节点
redis-cli --cluster add-node 172.121.123.221:7361 172.121.123.221:7365 --cluster-slave --cluster-master-id 66a2c25d60cc09668556d31c6c60d2295cd23f01 -a 123456
可以在各个节点查看集群状态
CLUSTER NODES
参考资料
https://blog.csdn.net/zwj1030711290/article/details/116327840