本篇博文写一下怎样在redis集群中删除节点(还是在之前博文的基础上),博文中的111.111.111.111均换成实际IP使用
删除从节点
我这里想要把上次扩容添加的一主一从节点删掉,首先把从节点6378删掉
docker exec进入容器6377,使用check命令查看集群情况
docker exec -it redis-node7 /bin/bash
redis-cli --cluster check 111.111.111.111:6371
拿到红框位置的6378节点id(用你实际的id),然后执行删除从节点命令
redis-cli --cluster del-node 111.111.111.111:6378 2ee73af85faf7708061ab4ffdb80a2845257ab5a
删除成功后再使用check命令查看集群情况会发现已经没有6378这个从节点了
重新分配槽位
redis-cli --cluster reshard 111.111.111.111:6371
这里还是输入16384除以4得到的4096
下一个问题是谁来接收这些槽位,这里我就直接把这些槽位都分配给6374主节点了(我这里6374是主节点,你那里可能6374是从节点,看清楚再操作) ,所以输入6374主节点的ID
然后又问你删除哪个节点,这里输入6377节点的ID,回车后输入#2输入done再回车结束
分配过程中再次询问是否继续,输入yes回车,等分配完成。
这里就已经把6377节点的所有槽位都分给了6374主节点,再次使用check命令查看集群情况
可以看到还是四个主节点,但是6377主节点已经没有槽位了
删除6387主节点
redis-cli --cluster del-node 111.111.111.111:6377 fdb615eb6c86ec8246739112b6cc89679b37f58b
再次查看集群情况,已经变成了三主三从