迁移槽和数据: 收缩流程图:流程说明: 首先需要确定下线节点是否有 负责 的槽,如果有,需要把 槽 迁移到其他节点,保证节点下线后整个集群槽节点映射的完整性。 当下线节点不再负责槽 或者 本身是从节点时,就可以通知 集群 内其他节点,忘记下线节点,当所有的节点忘记该节点后,可以正常关闭节点。 ++++++++ 收缩和扩容迁移的方向相反, 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
![]()
登录集群,查看节点信息。
检查主从复制关系是否标准。如果不是标准的主从复制关系,手动调整。
到此,集群收缩完成。