Redis主从复制:面试必考的高可用架构解析
作为程序员,在面试中被问到Redis高可用方案时,主从复制绝对是高频考点。今天我们就从实战角度拆解这套核心机制,帮你轻松应对面试官的连环追问!
🔧 一、Redis主从复制的核心机制
主从复制的本质是数据同步:一个主节点(Master) 将数据实时复制到多个从节点(Slave)。整个过程分为三个阶段:
-
建立连接阶段
从节点启动后向主节点发送PSYNC命令,主节点响应并生成RDB快照文件。

(主从建立连接示意图) -
数据同步阶段
主节点通过BGSAVE生成RDB文件传输给从节点,从节点清空旧数据后加载RDB。此时主节点会缓存同步期间的写命令(复制缓冲区)。 -
命令传播阶段
从节点加载完RDB后,主节点将缓冲区的写命令以AOF形式持续发送给从节点,实现实时同步。
⚡ 高频面试点:
"主节点挂掉后数据会丢失吗?"
答:取决于复制进度。若写命令未同步到从节点,缓冲区数据会丢失。需配合哨兵/集群实现自动故障转移。
⚙️ 二、主从架构的配置与实践要点
配置一个基础的主从结构只需三步:
# 在从节点执行(假设主节点IP为 192.168.1.100)
SLAVEOF 192.168.1.100 6379
但生产环境要考虑这些关键问题:
- 读写分离:写请求走主节点,读请求分散到从节点(注意复制延迟导致脏读)
- 从节点扩容:新增从节点时用
REPLICAOF命令加入集群 - 复制风暴规避:避免大量从节点同时全量复制,可级联复制(Slave -> Slave)
- 安全配置:主节点设置
requirepass,从节点配置masterauth

(读写分离流量示意图)
🛠️ 三、主从复制的故障排查指南
当发现主从数据不一致时,重点检查以下命令输出:
# 在主节点查看复制状态
INFO replication
# 关键指标:
master_repl_offset # 主节点复制偏移量
slaveX_repl_offset # 对应从节点偏移量(差值过大说明延迟)
常见问题及解决:
- 网络中断:检查
master_link_status:down - 复制超时:调整
repl-timeout参数 - 缓冲区溢出:增大
repl-backlog-size - 从节点数据过期:检查从节点是否开启持久化
💡 面试加分项:提到 PSYNC2 协议如何优化断点续传(通过复制ID和偏移量)
🎯 四、主从复制的局限性 VS 解决方案
虽然主从复制实现了数据冗余和读扩展,但仍有明显短板:
| 问题 | 优化方案 |
|---------------------|----------------------------|
| 主节点单点故障 | 部署哨兵(Sentinel) |
| 写性能瓶颈 | 改用Cluster分片集群 |
| 全量复制资源消耗大 | 控制从节点数量+适当调大repl-backlog |
👉 2025年Java面试宝典最新版(含Redis高频题解析):
链接: https://pan.baidu.com/s/1RUVf75gmDVsg8MQp4yRChg?pwd=9b3g
提取码: 9b3g
需要购买面试鸭会员的同学,通过 面试鸭返利网 找我可返现25元!用真实面试题库备战大厂,性价比之选!

(扫码访问面试鸭返利网)
掌握主从复制的底层逻辑,不仅面试能游刃有余,更能为实际架构设计打下坚实基础。遇到分布式问题,先问自己:数据一致性、可用性、容灾方案是否都覆盖了?


