Redis5.0.8 10 redis集群收缩

迁移槽和数据:
收缩流程图:


流程说明:

首先需要确定下线节点是否有 负责 的槽,如果有,需要把 槽 迁移到其他节点,保证节点下线后整个集群槽节点映射的完整性。

当下线节点不再负责槽 或者 本身是从节点时,就可以通知 集群 内其他节点,忘记下线节点,当所有的节点忘记该节点后,可以正常关闭节点。
++++++++
收缩和扩容迁移的方向相反, 192.168.189.14 6390 变成源节点,其他主节点变为目标节点,源节点把自己负责的4096个槽,大致均匀的迁移到其他节点。

由于 redis-cli --cluster reshard 命令只能一个目标节点,因此需要执行3次 reshard 命令,分别迁移 1365 1365 1366 个槽给189.14:6380 189.15:6380 189.16:6380

++++++++++++++++++
一、槽节点迁移(收缩):192.168.189.14上面操作

第一次:迁移1365个槽到 189.14:6380
redis-cli --cluster reshard 192.168.189.14:6380





这里,先把1365个槽,迁移到 189.14:6380 上面,所以这里的ID就是189.14:6380 的ID






++++++++++++
第二次迁移1365个槽到 189.15:6380
再次执行,前面的命令。



第三次迁移1366个槽到 189.16:6380

再次执行,前面的命令。



登录集群:查看信息




二、下线节点 (192.168.189.14上面操作)

redis-cli --cluster del-node 192.168.189.14:6390 a7551a4133b3adfe394f89853cbf64ad1435716e

删除节点时,必须要跟上这个节点的ID。




删除 192.168.189.14:6391
redis-cli --cluster del-node 192.168.189.14:6391 09c6d94297ab77dd42f856ea0edeb54d5de01d5a





登录集群,查看节点信息。



检查主从复制关系是否标准。如果不是标准的主从复制关系,手动调整。



到此,集群收缩完成。