由于服务期调整,已经配好的集群,要删除几个节点,利用命令redis-cli --cluster del-node ip:prot 结果删除失败了,报错: ERR Unknown subcommand or wrong number of arguments for 'del-node'。help查了下,没有这个命令,只好另寻他法。看到有最后如下方式成功了。
上干货,Mark一下。
1.执行任意一个reids节点和端口号
./redis-cli -c -h 192.168.1.1 -p 1111
2.连接成功后,执行密码访问
auth password
3.执行查看集群状态命令
cluster nodes
4.查看要删除节点的id号,进行删除操作
cluster forget da5fa72cd4a1adb875de1712dbdb
5.这时候该节点已经从当前redis ip中删除,但是并不意味着所有集群节点都删除,由于其他节点还有未下线的节点,在当前操作删除的ip下,会报handshake,表示尝试对下线节点进行重连。
6.此时,如法炮制,连接其他集群节点,重复1-4步骤,直到,所有节点都执行完。要下线的节点就彻底消失了。
反省:不过发现这种操作有点傻,幸好集群只有9台,要是几百台,还不得把人累死。我觉得del-node是能一次性解决的,不知道我这个版本为什么没有。只是当时线上生产着急删除,只好这么给解决了。手里没有能够测试的删除节点。有直到批量一次性删除操作的同仁,麻烦留言告知下。我暂时先把这种能用的方式记录下。之前handshake也小小困扰了下,被网络上误导走了点弯路。