DBAtlas · 数据库运维图谱

在集群中添加节点、移动槽和移除节点(add-node、reshard、rebalance)

Redis集群

命令

# Add the new master to the cluster (joins empty, with no slots):
redis-cli --cluster add-node node7:6379 node1:6379
# Attach a new replica to a specific master:
redis-cli --cluster add-node node8:6379 node1:6379 --cluster-slave --cluster-master-id <master-node-id>
# Move 1000 slots from all masters to the new node:
redis-cli --cluster reshard node1:6379 --cluster-from all --cluster-to <node7-id> --cluster-slots 1000 --cluster-yes
# Or rebalance automatically (give slots to empty masters too):
redis-cli --cluster rebalance node1:6379 --cluster-use-empty-masters
# Remove a node whose slots have been emptied:
redis-cli --cluster del-node node1:6379 <node-id>

作用

向集群添加新的主节点或副本,在线在节点之间移动槽及其 key,自动重新平衡槽分布,并将已清空的节点从集群中移除。

适用场景

横向扩展内存/吞吐量、分散热点节点负载,或下线节点时。

注意

槽迁移通过 MIGRATE 逐个传输 key;迁移大 key 时,两个节点都可能短暂阻塞。迁移期间客户端会收到 ASK 重定向;需要支持集群的客户端。若 reshard 被中断,槽会停留在 migrating/importing 状态;用 --cluster fix 完成。不要用 del-node 移除仍拥有槽的主节点;先移走它的槽。

在 DBAtlas 中打开 →

相关内容