You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过redis-cli创建指定主从分配的含纯从节点Redis集群

核心结论

你设想的直接将第四台服务器节点追加到集群创建命令的操作完全无法实现预期的主从分配目标。

redis-cli --cluster create 搭配--cluster-replicas参数的自动分配逻辑非常固定:

  • 先统计命令中列出的所有节点总数,按照主节点数 = 总节点数 / (1 + replicas设定值)的公式,从节点列表靠前位置自动挑选对应数量的节点作为主节点
  • 剩余节点作为从节点,随机绑定到各主节点下,全程不支持手动指定哪些节点必须为主、哪些必须为从,也不支持跨主机的精细化主从绑定

如果你把第四台的2个节点追加到create命令中,总节点数为8,搭配--cluster-replicas 1时,系统会自动选出4个主节点(和你规划的3个主节点的目标完全不符),剩余4个从节点随机分配,彻底打乱你“前三台固定主从角色、第四台全为纯从”的规划。

正确实现步骤
  1. 按初始规划创建3主3从的基础集群
    直接运行你编写的第一版create命令即可,这一步创建完成的集群完全匹配初始规划:前三台服务器的1111端口节点会自动成为主节点,每个主节点自动绑定同服务器上1122端口的从节点。
  2. 提前准备第四台服务器的Redis实例
    确保192.168.0.40上两个端口的Redis实例已正确开启集群模式,集群总线端口(即Redis服务端口+10000的内部通信端口)已放开防火墙规则,和现有集群所有节点网络互通。
  3. 将第四台的两个节点以纯从节点身份逐个加入集群
    为了完全掌控主从绑定关系,不要依赖系统自动分配,使用add-node命令搭配从节点专属参数,手动指定每个新从节点要绑定的主节点:
    • 首先运行./redis-cli --cluster info <任意现有集群节点地址>,从输出中查到3个主节点对应的40位十六进制ID
    • 逐个添加从节点,命令格式为:
      ./redis-cli --cluster add-node <新从节点地址> <任意现有集群节点地址> --cluster-slave --cluster-master-id <目标主节点的ID>
      
    两个新节点分别执行上述命令,绑定到你规划的目标主节点即可。
关键注意点
  • 加入新节点时必须携带--cluster-slave参数,否则add-node默认会把新节点作为主节点加入,触发集群槽位重新迁移,完全违背你设置纯从节点的需求。
  • 两个第四台从节点的绑定目标可以完全灵活规划:既可以分别挂载到两个不同主节点下提升整体容灾能力,也可以给单个主节点配置双从,所有分配规则全由你指定--cluster-master-id时自主决定。
  • 不要试图通过调整create命令里的节点顺序来凑出预期的主从分配结果,Redis的自动分配逻辑没有确定性的匹配规则,很容易出现和规划不符的结果。

内容的提问来源于stack exchange,提问作者aswzen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 22:45:02