首页/数据/Redis 进阶速查/CLUSTER MEET 组建集群

CLUSTER MEET 组建集群

CLUSTER MEET ip port 让两个节点握手并交换拓扑:后续通过 gossip 逐步发现全网节点,是手工组建集群的首个操作。

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

MEET 是组建集群的第一步

CLUSTER MEET ip port 是手工组建集群的起点:它让当前节点与目标节点握手,双方随后通过 gossip 协议逐步交换各自的节点列表,最终全网节点互相可见。执行成功只表示节点加入了集群拓扑,并不代表它拥有槽或数据,还需要用 CLUSTER ADDSLOTS 分配槽,或用 CLUSTER REPLICATE 把它设为某个主节点的从库。

基本信息

语法CLUSTER MEET <ip> <port>
执行位置在集群中任一已运行的节点上执行
结果目标节点加入集群,默认不持有任何槽
幂等性对已存在的节点重复执行不会重复加入
前提两节点双向可达,含集群总线端口

典型使用场景

  • 手工搭建六节点集群,逐台 MEET 形成初始拓扑
  • 新增主节点后把它并入现有集群再分配槽
  • 拓扑状态异常需要重新建立节点间的可见关系
  • 演练环境快速拉起一套小集群做功能验证
  • 排查节点只认识自己、集群节点列表长期不完整的现象

组建示例

组建示例
redis-cli -p 7000 CLUSTER MEET 10.0.0.12 7000     # 与第二个节点握手
redis-cli -p 7000 CLUSTER MEET 10.0.0.13 7000     # 继续加入第三个节点
redis-cli -p 7000 CLUSTER NODES | wc -l           # 节点数是否达到预期
redis-cli -p 7000 CLUSTER INFO | grep cluster_state   # 未分配槽时通常为 fail
redis-cli -p 7000 CLUSTER ADDSLOTS $(seq 0 5460)   # 分配槽位,shell 写法需按版本与长度调整

MEET 之后的步骤

步骤命令说明
加入节点CLUSTER MEET只建立拓扑关系,不涉及数据
分配槽位CLUSTER ADDSLOTS让节点承担键空间,未分配完集群状态为 fail
设置从属CLUSTER REPLICATE把节点设为某个主节点的副本
核对拓扑CLUSTER NODES确认节点数、角色与槽区间符合预期
集群总线端口等于业务端口加 10000,防火墙与安全组必须双向放行,否则 MEET 看似成功,节点列表却长时间同步不过来。
全部槽分配完毕之前集群状态会显示 fail,这是组建过程中的正常中间态,不必急着当作故障处理。

易错点

  • 只放行业务端口没放行总线端口,节点之间握手成功但拓扑长期不收敛,误判为程序问题
  • MEET 完成后误以为集群已可用,未分配槽就切流量,客户端直接报集群不可用
  • 在错误的节点上执行 MEET 把测试实例并入生产集群,之后需要额外的移除操作
  • 用主机名做集群拓扑但域名解析在不同机器上结果不一致,节点间连接时好时坏

数据来源与参考

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