Redis CLUSTER REPLICATE 命令重新配置一个节点成为指定 master 的 salve 节点。如果收到命令的节点是一个 empty master,那么该节点的角色将由 master 切换为 slave。
一旦一个节点变成另一个 master 节点的slave,无需通知集群内其他节点这一变化:节点间交换信息的心跳包会自动将新的配置信息分发至所有节点。
命令格式
CLUSTER REPLICATE node-id
可用版本:>=3.0.0
时间复杂度:O(1)
基于如上假设,一个 slave 节点会接受该命令:
- 指定节点在它的节点信息表中存在。
- 指定节点无法识别接收我们命令的节点实例。
- 指定节点是一个 master。
如果收到命令的节点不是 slave 而是 master,只要在如下情况下,命令才会执行成功,该节点才会切换为 slave:
- 该节点不保存任何 hash 槽。
- 该节点是空的,key 空间中不存储任何键。
如果命令执行成功,新的 slave 会立即尝试连接它的 master 以便进行数据复制。
命令返回值
命令执行成功完成回复 OK,否则返回错误。