Skip to content

第28章:集群运维实战 ​

28.1 集群扩容 ​

bash
# 1. 启动新节点(cluster-enabled yes)
# 2. 加入集群
redis-cli --cluster add-node 新节点IP:6379 现有节点IP:6379

# 3. 重新分片(迁移槽到新节点)
redis-cli --cluster reshard 现有节点IP:6379
# 按提示输入:迁移多少槽、目标节点ID、源节点ID

28.2 集群缩容 ​

bash
# 1. 先把槽迁走
redis-cli --cluster reshard 要下线的节点IP:6379

# 2. 删除节点
redis-cli --cluster del-node 集群IP:6379 节点ID

28.3 故障模拟 ​

bash
# 模拟 Master 宕机
redis-cli -p 6379 DEBUG SLEEP 30   # 挂起30秒

# 观察:CLUSTER NODES → Slave 自动提升为 Master
# 原 Master 恢复后 → 自动变为新 Master 的 Slave

28.4 健康检查 ​

bash
# 检查集群状态
redis-cli --cluster check 127.0.0.1:6379

# 输出:
# 16384 slots OK
# 3 masters, 3 replicas
# All nodes agree about slots configuration.

本章小结 ​

  • 扩容:add-node + reshard
  • 缩容:迁移槽 → del-node
  • 故障:Slave 自动提升为 Master
  • 定期 --cluster check 健康检查

练习题 ​

  1. 模拟集群扩容:加 1 主 1 从,迁移槽。
  2. 模拟 Master 宕机,观察自动故障转移。

把零散知识,整理成可以反复走的路。