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

Redis主从复制INFO命令返回错误复制信息求助

问题原因与解决方案

原因分析

这是NAT网络环境下的典型问题,核心逻辑在于Redis主节点记录从节点信息的方式:

  • 从节点通过VIP发起复制连接时,NAT设备会对从节点的源IP/端口做地址转换,主节点从TCP连接的远端地址中获取的是经过NAT转换后的VIP(即主节点自身的虚拟地址),而非从节点的真实IP和端口。
  • Redis默认会把接受连接时的远端套接字地址作为从节点的标识信息,所以INFO replication结果里才会显示从节点的IP/端口为VIP。

解决方法

要让主节点正确显示从节点的真实IP和端口,需要在从节点配置中主动宣告自身的真实地址:

  1. 在每个从节点的Redis配置文件中添加以下参数:
    replica-announce-ip <从节点真实物理IP>
    replica-announce-port <从节点真实监听端口>
    
  2. 重启从节点服务,重新发起复制连接。

配置这两个参数后,从节点会在与主节点建立复制连接时,主动把自己的真实IP和端口发送给主节点,主节点就会用这个宣告的地址记录从节点信息,后续执行INFO replication就能看到正确的从节点真实地址了。

如果你的环境中从节点端口是动态分配的,需要额外处理:

  • 可以通过脚本在从节点启动时自动获取当前监听的端口,动态更新replica-announce-port参数的值后再启动Redis服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:33:29