redis主从复制通过replicaof指定主节点实现读写分离与数据冗余,支持配置文件、命令行、运行时三种配置方式;同步分全量(rdb快照+缓冲区补命令)和增量(psync基于偏移量)两阶段,并依赖replica-read-only、replica-serve-stale-data等关键参数控制行为。

Redis 主从复制配置本身不复杂,关键是理解同步机制和配置项的含义。主节点负责写,从节点自动拉取并复现写命令,实现读写分离和数据冗余。
主从配置方式(三种可选)
从节点启动时需明确指定主节点地址和端口,有以下三种等效方式:
- 在从节点 redis.conf 中添加:
replicaof 192.168.1.10 6379(Redis 5.0+ 推荐用replicaof,旧版本用slaveof)
如有密码,加一行:masterauth your_password - 启动时通过命令行参数指定:
redis-server --replicaof 192.168.1.10 6379 --masterauth your_password - 运行中动态执行命令(临时生效,重启失效):
redis-cli -p 6380 replicaof 192.168.1.10 6379
关键配置项说明
除了基础连接,还需关注几个影响同步行为的参数:
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
- replica-read-only yes:默认开启,确保从节点只读,防止误写导致数据不一致
-
replica-serve-stale-data yes:网络中断时是否继续提供旧数据(设为
no可让客户端立即报错) - repl-ping-replica-period 10:主节点每 10 秒向从节点发心跳,检测连接状态
- repl-backlog-size 1mb:复制积压缓冲区大小,决定增量同步能覆盖多长的断连时间;大流量场景建议调大(如 100MB)
数据同步过程分两阶段
主从建立连接后,自动按需触发两种同步模式:
-
全量同步(Full Sync):首次连接、复制ID不匹配或缓冲区不足时触发。
主节点生成 RDB 快照,传给从节点;同时把快照期间的新写命令暂存到复制缓冲区,加载完 RDB 后再补发这些命令。 -
增量同步(Partial Sync):日常运行及短时断连后重连时使用。
从节点带上自己的replication offset和主节点的replication id发起PSYNC请求;主节点检查偏移量是否仍在缓冲区内,若是,只推送缺失的命令流,避免重复传输 RDB。
验证与监控方法
配置完成后,用 INFO REPLICATION 命令查看状态:
- 主节点输出中
connected_slaves:1表示有一个从节点在线,slave0:ip=...port=...state=online显示详情 - 从节点输出中
role:slave,master_host和master_port应匹配配置,master_link_status:up表示连接正常 - 观察
master_repl_offset(主节点已发出的总字节数)和slave_repl_offset(从节点已接收字节数),两者差值越小越好










