redis主从复制不生效的首要原因是配置文件未被实际加载,而非配置错误;常见表现包括无需密码即可连接、info replication显示role:master、rdb/aof文件不生成,须通过ps aux、config get及systemd服务文件确认配置路径是否正确加载。

Redis主从复制配置不生效,90%以上是没真正加载你改的 redis.conf,而不是配置写错了。
redis-server 启动时根本没读你的配置文件
直接执行 redis-server(无参数)会启动默认配置,requirepass、replicaof、dir 全部失效。现象包括:不需要密码就能连、info replication 显示 role:master、dump.rdb 或 appendonly.aof 死活不生成。
- 检查是否用了绝对路径启动:
redis-server /etc/redis/redis.conf(注意路径要真实存在) - 确认进程实际加载的配置:
redis-cli CONFIG GET dir和CONFIG GET requirepass,返回值应与配置文件一致 - 用
ps aux | grep redis看启动命令里有没有带.conf路径;没有就说明走的是默认配置 - systemd 管理的服务需检查
/etc/systemd/system/redis.service中ExecStart是否含配置文件路径
防火墙或网络策略拦住了 6379 端口
CentOS 7+ 默认用 firewalld,ping 通 ≠ 端口通。从节点 info replication 里 master_link_status:down 或日志报 No route to host 就是典型表现。
Redis 8.2.3 是一款安全优先的高性能键值存储系统。该版本紧急修复了可能引发远程代码执行(RCE)的高危漏洞(CVE-2025-62507),并解决了 HyperLogLog 及 Cuckoo Filter 等数据结构在特定场景下的崩溃问题。建议所有用户立即升级,以保障生产环境的系统稳定与数据安全。
- 主从两边都执行:
firewall-cmd --permanent --add-port=6379/tcp - 然后重启防火墙:
systemctl restart firewalld - 验证端口开放:
firewall-cmd --query-port=6379/tcp返回yes - 临时关闭防火墙测试(仅调试):
systemctl stop firewalld,确认通了再开回来
密码相关配置漏了 masterauth 或 protected-mode
主库设了 requirepass foobar,但从库没配 masterauth foobar,连接会卡在认证阶段,日志里出现 MASTER aborted replication with an error: NOAUTH Authentication required。
- 从库
redis.conf必须同时有:replicaof 192.168.x.x 6379和masterauth foobar - 如果主库绑定了内网 IP(如
bind 192.168.1.10),从库也要确保能路由到该地址,不能只写127.0.0.1 -
protected-mode yes是默认开启的,若主库没设密码又没关它,会拒绝所有非本地连接;测试时可临时设为no,生产环境必须配合requirepass
配置改了但服务没重启或 pid 文件残留
修改 redis.conf 后不重启服务,改动完全不会生效。更隐蔽的是旧 pid 文件残留导致新进程起不来,报错 /var/run/redis_6379.pid exists, process is already running or crashed。
- 停服务必须用对应方式:
systemctl stop redis或service redis_init_script stop,别只杀进程 - 删掉旧 pid:
rm -f /var/run/redis_6379.pid(路径以配置中pidfile项为准) - 启动后立刻验证:
redis-cli -p 6379 info replication | grep -E "(role|master_link_status|connected_slaves)" - 从库连不上时,先在从库机器上手动 telnet 主库 IP + 端口,确认 TCP 层通不通
最容易被忽略的是:你以为改了配置文件,其实启动脚本里硬编码了另一份配置路径,或者 systemd service 文件覆盖了你的设置。动手前先用 CONFIG GET 确认 Redis 进程当前实际生效的参数,比反复改配置更省时间。










