*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)