首页/数据/数据库速查/集群再均衡(--cluster rebalance)
Redis 运维与场景124 条

集群再均衡(--cluster rebalance)

按节点权重自动移动槽使分布均衡:--cluster-weight 指定权重、--cluster-use-empty-masters 允许空主接收槽;用于扩容后容量对齐。

数据库速查数据更新于 2026-10-13

按权重自动均衡槽位

cluster rebalance 是多次 reshard 的自动化封装:给定各节点权重后,它会计算槽的分布并自动把槽从负载高的节点迁到低的节点,还可以让新加入的空主节点也参与接收。权重能让性能更好的机型多承担一些槽,偏差阈值则决定多大不均衡才触发迁移。

基本信息

适用Redis 5.0 及以上 Cluster 模式
权重cluster-weight 指定节点权重,默认 1
偏差容忍cluster-threshold 指定触发迁移的不均衡百分比
空主节点cluster-use-empty-masters 允许新空节点接收槽

再均衡操作

再均衡操作
redis-cli --cluster rebalance 10.0.0.1:6379 --cluster-weight 新节点ID=2 旧节点ID=1 --cluster-use-empty-masters --cluster-threshold 2   # 按权重迁移并允许空主接收
redis-cli --cluster rebalance 10.0.0.1:6379 --cluster-simulate   # 只预演不执行,先看迁移计划
redis-cli --cluster check 10.0.0.1:6379       # 迁移前后核对槽分布与副本状态
redis-cli --cluster info 10.0.0.1:6379        # 查看节点与槽的概览
redis-cli CLUSTER COUNTKEYSINSLOT <槽号>      # 抽查关键槽上的键数量
redis-cli --cluster reshard 10.0.0.1:6379     # 需要精确控制时可改用 reshard 手工迁移

参数读法

参数含义使用建议
--cluster-weight节点权重,默认 1按机型与磁盘规格匹配设置
--cluster-threshold触发迁移的不均衡百分比过高会导致长尾节点依旧不均
--cluster-use-empty-masters空主节点参与接收槽扩容后必加,否则新节点分不到槽
--cluster-simulate只输出迁移计划生产执行前先用它评估影响
--cluster-timeout单步迁移超时网络抖动频繁时可适当放宽

典型使用场景

  • 扩容后把槽从旧节点迁到新节点,实现容量对齐
  • 机型混合部署:给高配节点更高权重
  • 负载倾斜修正:某个节点键值明显更多时重新均衡
  • 缩容前的槽腾挪,配合删节点流程使用
  • 演练迁移计划,评估对业务延迟的影响
再均衡会在集群间持续迁移槽与键,产生大量跨节点流量;务必在业务低峰执行,并预留网络带宽与监控观察窗口。
迁移过程中客户端可能收到 ASK 重定向,这是集群的正常机制;如果重定向报错频发,先检查客户端是否支持集群模式与槽缓存。

易错点

  • 在满负载时执行 rebalance:迁移流量与业务流量叠加,延迟明显飙升
  • 权重配置与实际机型不符:均衡后热点仍然集中在少数节点上
  • 扩容后忘记加 --cluster-use-empty-masters:新节点分不到槽,扩容等于没做
  • 不做预演直接执行:看不到迁移计划,出现问题只能中断并回退

数据来源与参考

  • Redis 官方文档: redis-cli --cluster rebalance

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌