Redis主从复制原理简介
作为面试高频考点,Redis主从复制机制是分布式系统设计的核心基础。今天咱们就深入聊聊Redis主从复制的底层原理,用程序员能听懂的大白话讲明白!

▶ 2025最新Java面试宝典:
点击获取网盘资料
提取码:9b3g
🧩 Redis主从复制的核心流程
Redis主从复制过程分为全量同步和增量同步两个阶段:
-
建立连接阶段
当从节点执行slaveof命令后,会向主节点发送PSYNC命令,携带复制偏移量(offset)和主节点ID -
全量同步(RDB快照)
- 若首次连接或复制积压缓冲区不匹配,触发全量同步
- 主节点执行
bgsave生成RDB文件 - 传输期间的新写命令存入复制缓冲区(repl_backlog)
-
增量同步(命令传播)
- 主节点持续将写命令发送给从节点
- 从节点通过
ACK反馈复制偏移量 - 主节点根据偏移量决定是否触发增量同步

⚡ Redis主从复制核心机制
复制偏移量(offset)
主从节点各自维护复制偏移量:
主节点:每次发送N字节数据,offset+N
从节点:每次接收N字节数据,offset+N
通过对比偏移量差值判断数据同步状态
复制积压缓冲区(repl_backlog)
核心组件:环形缓冲区(1MB默认大小)
- 存储最近传播的写命令
- 实现增量同步的关键组件
- 缓冲区大小需根据业务流量调整
🔄 Redis主从复制故障恢复
当主节点宕机时:
graph LR
A[主节点宕机] --> B[哨兵选举新主节点]
B --> C[其他从节点同步新主]
C --> D[客户端切换连接]
注意点:
- 异步复制可能导致数据丢失(已确认但未同步的写操作)
- 脑裂问题需通过
min-slaves-to-write参数避免
💡 Redis主从复制优化方案
-
合理配置repl_backlog_size
repl_backlog_size = 网络延迟 * 写入TPS * 安全系数 -
启用无盘复制
repl-diskless-sync yes减少IO压力 -
主从级联架构
通过从节点再挂载从节点,减轻主节点压力
📌 Redis主从复制面试要点
-
主从复制是否强一致?
→ 异步复制,存在秒级延迟 -
主从切换丢失数据怎么办?
→ 可配置min-slaves-max-lag保证基本一致性 -
复制缓冲区满了会怎样?
→ 触发全量同步,消耗主节点资源

🚀 高效备战面试小贴士
准备Redis主从复制这类高频考点时,建议结合真实运维场景理解原理。需要系统化面试资料的同学,可以通过面试鸭返利网购买会员,通过本站下单可返利25元,用最划算的方式获取完整面试题库!
本文已收录至《分布式系统面试精讲》专题,更多Redis深度解析可访问: https://mianshiyafanli.com/redis


