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

非默认端口下Docker Compose部署Redis集群同步异常求助

问题解决:Redis集群从节点连接主节点使用默认端口6379而非自定义端口

问题原因

Redis集群节点会向集群公告自身的IP和端口信息,当使用自定义端口但未明确配置cluster-announce-port参数时,节点可能错误地将默认端口6379作为公告端口,导致从节点获取到错误的主节点端口信息,进而尝试连接6379端口。

解决方案

1. 修正每个Redis节点的配置

在Docker Compose中,为每个Redis服务添加cluster-announce-ip和cluster-announce-port参数,确保节点向集群公告正确的IP和自定义端口。以其中一个节点为例:

redis-2:
  image: redis:latest
  command: >
    redis-server 
    --port 1002 
    --cluster-enabled yes 
    --cluster-config-file nodes.conf 
    --cluster-node-timeout 5000 
    --appendonly yes 
    --cluster-announce-ip 173.18.0.2 
    --cluster-announce-port 1002
  networks:
    redis-cluster:
      ipv4_address: 173.18.0.2

对所有6个节点(3主3从)重复此配置,替换对应的IP和端口(如173.18.0.3:1003、173.18.0.4:1004等)。

2. 重新部署集群

停止并删除现有容器:

docker-compose down

重新启动节点:

docker-compose up -d

3. 重新创建集群

再次执行集群创建命令:

redis-cli --cluster create 173.18.0.2:1002 173.18.0.3:1003 173.18.0.4:1004 173.18.0.5:1005 173.18.0.6:1006 173.18.0.7:1007 --cluster-replicas 1

4. 验证配置

连接任意节点,查看集群节点信息,确认所有节点的公告地址都是正确的IP和自定义端口:

redis-cli -h 173.18.0.2 -p 1002 cluster nodes

输出中每个节点的地址格式应为[IP]:[自定义端口],而非默认的6379端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:45:14