Redis如何配置主从复制关系_利用REPLICAOF命令将节点挂载至主节点
REPLICAOF 失效常见原因为网络不通、主节点 protected-mode yes 未配 bind 或 requirepass、从节点未设 masterauth需 telnet 测试连通关闭 protected-mode 或 bind 0.0.0.0配置 masterauth 并写入 redis.conf 持久化。REPLICAOF 命令执行后没生效主从没连上常见现象是执行 REPLICAOF 192.168.1.10 6379 后用 INFO replication 查看仍显示 role:master或 master_link_status:down。根本原因通常是网络不通、主节点未开启远程连接、或主节点配置了 protected-mode yes 且没配 bind 或 requirepass。先在从节点上用 telnet 192.168.1.10 6379 测试连通性不通就查防火墙、Docker 网络或云服务器安全组主节点必须关闭 protected-mode设为 no或显式配置 bind 地址如 bind 0.0.0.0并确保不暴露在公网如果主节点启用了密码认证从节点需同步设置 masterauth yourpass否则握手阶段就会被拒绝REPLICAOF 是运行时命令重启 Redis 后失效要持久化得写进 redis.conf 里加两行replicaof 192.168.1.10 6379 和 masterauth yourpass主节点拒绝同步error: NOAUTH Authentication required这是最典型的权限断连场景——从节点发 SYNC 请求时主节点要求 AUTH但从节点没带密码过去。注意这不是客户端连接密码而是复制链路专用的 masterauth。主节点的 requirepass 只控制客户端连接不影响复制协议本身真正控制复制身份的是从节点上的 masterauth 配置项不能靠在从节点执行 AUTH 命令来“提前登录”REPLICAOF 触发的同步流程不复用当前连接的认证状态若主节点密码含特殊字符如 、/masterauth 值无需 URL 编码Redis 内部直接按字符串比对验证方式在从节点执行 CONFIG GET masterauth确认返回值和主节点 requirepass 一致从节点启动即报错Failed to establish connection with masterRedis 启动时自动加载 redis.conf 中的 replicaof 指令但如果此时主节点不可达会持续重试并记录错误日志但不会阻塞自身启动。用户感知到的“报错”往往来自日志里的反复重连失败。 文小言 百度旗下新搜索智能助手有问题问小言。