*Redis CLUSTER MEET 命令 将新节点加入集群

*CLUSTER MEET

*语法

CLUSTER MEET ip port

*说明

将指定 IP 和端口的 Redis 节点引入当前节点所在的集群。这是构建 Redis Cluster 的第一步操作。

工作原理

  • 当前节点会向目标节点发送 MEET 消息
  • 目标节点接受后会将当前节点加入其已知节点列表
  • 两个节点会互相交换已知的其他节点信息
  • 通过 Gossip 协议,整个集群最终都会知道新节点

使用场景

  • 初始化新集群
  • 向现有集群添加新节点
  • 手动修复集群连接问题

*示例

# 将新节点加入集群
redis-cli CLUSTER MEET 192.168.1.100 6379

# 完整的集群初始化流程
# 假设有 6 个节点:3 主 3 从

# 1. 在所有节点上分别启动 Redis(已配置 cluster-enabled yes)
# 2. 选择一个节点,将所有其他节点引入
redis-cli -h 192.168.1.101 CLUSTER MEET 192.168.1.102 6379
redis-cli -h 192.168.1.101 CLUSTER MEET 192.168.1.103 6379
redis-cli -h 192.168.1.101 CLUSTER MEET 192.168.1.104 6379
redis-cli -h 192.168.1.101 CLUSTER MEET 192.168.1.105 6379
redis-cli -h 192.168.1.101 CLUSTER MEET 192.168.1.106 6379

# 3. 分配槽位给主节点
redis-cli -h 192.168.1.101 CLUSTER ADDSLOTS $(seq 0 5460)
redis-cli -h 192.168.1.102 CLUSTER ADDSLOTS $(seq 5461 10922)
redis-cli -h 192.168.1.103 CLUSTER ADDSLOTS $(seq 10923 16383)

# 4. 配置副本节点
redis-cli -h 192.168.1.104 CLUSTER REPLICATE <node-101-id>
redis-cli -h 192.168.1.105 CLUSTER REPLICATE <node-102-id>
redis-cli -h 192.168.1.106 CLUSTER REPLICATE <node-103-id>

*返回值

  • OK:节点已成功加入集群
  • 错误:如果连接失败或节点已在集群中

*版本兼容性

版本 说明
>= 3.0.0 可用

*时间复杂度

O(1)