首页/数据/Redis 进阶速查/CLUSTER REPLICATE:设置从节点

CLUSTER REPLICATE:设置从节点

在节点上执行 CLUSTER REPLICATE <master-node-id> 把它变为指定主节点的从库;节点需要是空实例(无槽、无数据)。

Redis 进阶速查数据更新于 2026-10-13

把节点设成主库的副本

在某个节点上执行 CLUSTER REPLICATE <主节点ID>,就把它变成该主节点的从库,节点随即开始同步并进入从节点角色。前提是这个节点是干净实例:不持有任何槽、也没有数据,否则命令会被拒绝。手工搭建三主三从的标准做法就是先给三个主节点分好槽,再对剩下三个空节点逐个执行这条命令。

基本信息

用法CLUSTER REPLICATE <主节点ID>
前提条件执行节点无槽、无数据,且已被集群认识
执行结果节点角色变为从节点并开始同步
纠正方式重新指向正确的主节点即可调整从属关系
核对方式查看节点的角色标记与主节点字段

典型使用场景

  • 手工搭建集群时为每个主节点配置对应的副本
  • 替换故障副本后把新实例挂到原主节点下
  • 演练中把某副本改挂到另一个主节点,验证拓扑调整流程
  • 扩容新主节点后为它补充副本以消除光杆风险
  • 排查副本挂错主节点的情况并纠正从属关系

配置示例

配置示例
# 三主三从:先给前三个空节点分配槽,再把后三个空节点设为副本
redis-cli -p 7003 CLUSTER REPLICATE <主节点7000的id>
redis-cli -p 7004 CLUSTER REPLICATE <主节点7001的id>
redis-cli -p 7005 CLUSTER REPLICATE <主节点7002的id>
redis-cli -p 7003 CLUSTER NODES | grep 7003   # 核对角色与所属主节点
redis-cli --cluster check 10.0.0.11:7000      # 整体核对主从配对

前提与结果

项要求或结果不满足时
节点状态无槽、无数据命令被拒绝,需要先清理该节点
拓扑可见性节点已加入集群找不到目标主节点,命令失败
角色变化由主变为从或由独立变从角色未变化说明命令未生效
同步启动开始从目标主节点同步数据长时间未同步要查网络与日志
节点带有数据或槽时命令会被直接拒绝,配置前先确认它是干净实例,必要时清空数据目录再重新加入集群。
如果挂错了主节点,重新执行一次指向正确主节点的命令即可纠正,这个操作本身是幂等且可回退的。

易错点

  • 在带槽或带数据的节点上执行,命令被拒绝,反复重试却没有先清理实例
  • node-id 复制错位,建成错误的主从配对,直到故障演练时才发现副本无法接管
  • 只给部分主节点配副本,留下光杆分片,主节点故障时无法自动切换
  • 配置完成后不核对角色与主从字段,同步实际未启动却以为已经就绪

数据来源与参考

  • Redis 官方文档:CLUSTER REPLICATE 命令
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌