redis cluster 当中一台机器需要维修,因此需要把这台机器上的redis cluster主节点都迁移到另外一台机器。
1、将机器的节点的加入到集群。
检查集群:
/usr/local/redis5/bin/redis-cli -p 6381 --cluster check 10.21.81.29:6381:6381
使用meet命令加入集群:
/usr/local/redis5/bin/redis-cli -p 6381
使用命令:
cluster meet 10.21.81.29:6381 3000
2、使用reshard 命令将redis cluster的slot迁移到新机器的集群。
/usr/local/redis5/bin/redis-cli --cluster reshard 10.21.81.29:6381 --cluster-from <原实例id> --cluster-to <新实例id> --cluster-slots <slot数量>
例如:
/usr/local/redis5/bin/redis-cli --cluster reshard 10.197.81.29:6381 --cluster-from b7d4375e52421e8dbc44baed39d570a1e5e5682c --cluster-to b006aa5527b023d8baf3c7803ef138bf63fe7c19 --cluster-slots 3277
3、将原机器节点从redis cluster 集群剔除。
命令:
redis-cli --cluster call 192.168.8.101:6381 cluster forget <xxx_node_id>
例如:
/usr/local/redis5/bin/redis-cli --cluster call 10.21.81.29:6381:6381 cluster forget b006aa5527b023d8baf3c7803ef138bf63fe7c19
4、或者还有个命令直接删除节点:
./redis-cli --cluster del-node 10.21.81.29:6381 0f7cb7dec75f3f9b91046d622e2d6c639b42b452