删除节点有两种情况:
(1)删除master节点,需要先把目标节点中的slot移动到其他节点中,然后执行删除节点操作
(2)删除slave节点,直接执行删除操作
删除master
(1)执行重新分片操作
redis-trib.rb reshard 127.0.0.1:7000
依次输入:要移动的slot数量(要删除节点上的slot数量)、接受slot的节点ID、移动源节点ID(要删除节点的ID)、done,输出移动计划后输入:yes,开始执行移动操作
查看集群节点信息,看要删除的节点上的slot数量是否为0
redis-trib.rb check 127.0.0.1:7000
(2)执行删除操作
redis-trib.rb del-node 127.0.0.1:7000 b0734e888058eab62527384e5d280ebbe57bf348
命令说明:redis-trib.rb del-node host:port nodeID
(3)查看集群节点信息
redis-trib.rb check 127.0.0.1:7000
可以看到删除操作成功了
另外,之前删除的master节点是有slave的,被删除后slave如何处理了呢?这里可以看到,这个slave被自动分配给另一个master了
删除slave
直接执行删除节点的操作
redis-trib.rb del-node 127.0.0.1:7000 要删除节点的ID
查看集群节点信息
redis-trib.rb check 127.0.0.1:7000