最直接可控的主从配置是在redis.conf中添加replicaof、masterauth和replica-read-only yes;必须重启redis实例而非重载,且需确保主从密码一致、端口与pid文件等隔离。

redis.conf 文件里加 replicaof 是最直接、最可控的主从配置方式。宝塔面板本身不提供图形化主从向导,强行点“主从复制”按钮容易漏掉认证或持久化配置,导致同步失败或数据丢失。
主节点必须显式设置 requirepass 且从节点配对 masterauth
如果主 Redis 开启了密码(宝塔默认安装后会生成随机密码),从节点不带认证就无法握手成功,日志里反复出现 Connection refused 或 NOAUTH Authentication required。必须在从节点的 redis.conf 中写明:
-
replicaof 127.0.0.1 6379(主节点地址和端口) -
masterauth "your_master_password"(注意:不是requirepass,是专门给主节点用的认证字段) - 主节点的
requirepass值要和这个masterauth完全一致
漏掉 masterauth 是最常见同步失败原因——哪怕 replicaof 写对了,也会卡在 AUTH 阶段。
从节点必须设为只读,否则写操作会污染数据
Redis 从节点默认可读可写,但一旦手动写入,下次主从重连时不会自动覆盖,反而可能引发 AOF/RDB 不一致。务必在从节点配置中加上:
-
replica-read-only yes(宝塔安装的 Redis 7.x 默认是yes,但旧版或手动编译可能为no) - 检查
info replication输出里的role:slave和master_read_only:1是否都为真 - 如果看到
connected_slaves:0或master_link_status:down,先确认masterauth和网络连通性,别急着重启
宝塔里改配置后必须重启对应实例,不能只 reload
宝塔面板的“重载配置”按钮对 replicaof 类指令无效——这是 Redis 协议限制,replicaof 属于运行时不可热更的配置项。必须执行:
- 进宝塔【软件管理】→ 找到 Redis → 点击“停止”
- 确认进程已退出:
ps aux | grep redis | grep -v grep - 再点“启动”,或手动执行:
/www/server/redis/src/redis-server /www/server/redis/conf/redis.conf - 连上后立刻跑
info replication看master_host和master_port是否非空
很多人卡在这一步:点了重载,以为生效了,其实从节点压根没发起连接请求。
单机模拟主从时,端口和 PID 文件必须严格隔离
在一台服务器上起一主两从(比如 6379/6380/6381),除了 port,以下三项一个都不能复用:
-
pidfile /www/server/redis/pid/redis_6379.pid(每个实例独立 PID 文件) -
dbfilename dump6379.rdb(避免 RDB 覆盖) -
appendfilename "appendonly6379.aof"(AOF 同理)
共用 pidfile 会导致宝塔服务状态错乱;共用 dump.rdb 可能让从节点加载错误快照,同步后数据凭空消失。
redis.conf 里的配置,以及你是否记得重启而非重载。











