
2025年Java面试宝典最新版下载地址(点击蓝色文字保存) 提取码:9b3g
(覆盖Redis/分布式/微服务等高频考点,建议立即收藏)
Redis主从复制到底是怎样工作的?
作为程序员面试的常客,Redis主从复制机制总是绕不开的话题。去年某大厂二面中,面试官直接让我在白板上画主从同步流程图,今天就结合真实面试场景,用口述形式拆解这个技术点。
主从复制的核心作用
主从复制主要解决数据冗余和高可用这两个核心问题。当主库出现故障时,我们可以快速切换到从库继续提供服务,这个过程涉及三个关键角色:
- 主节点(Master):唯一可写的节点
- 从节点(Slave):复制主节点数据的只读节点
- 哨兵节点(Sentinel):负责监控和自动故障转移

复制流程七步拆解
-
建立连接阶段
从节点执行slaveof命令后,首先会保存主节点信息,这时候主从之间还没有真正建立连接。有个容易混淆的点:保存主节点IP后并不会立即连接,而是等待定时任务触发。 -
socket通道建立
从节点内部的定时任务检测到主节点信息后,创建socket连接。如果连接失败会定时重试,此时面试官可能会追问重试策略,需要强调指数退避机制。 -
发送PING命令
连接建立后的第一道校验,既检测网络状况又验证主节点是否接受命令。这里有个经典陷阱:如果主节点设置了密码验证但未配置masterauth参数,会导致无限重连。 -
权限校验阶段
主节点验证requirepass配置与从节点的masterauth是否匹配,这也是生产环境常见故障点,建议重点记忆校验顺序。 -
数据同步阶段
分全量同步和部分同步两种情况:
- 全量同步:发送
SYNC命令触发RDB文件生成 - 部分同步:通过复制积压缓冲区(repl_backlog)发送断联期间的增量数据

-
命令持续传播
完成同步后进入稳定状态,主节点将每个写命令发送给从节点,此时需要说明异步复制的特性,以及可能存在的数据不一致时间窗口。 -
心跳维持机制
主从定期互发REPLCONF ACK,既检测连接状态又辅助实现min-slaves配置,这个机制直接影响数据安全性,是面试加分点。
生产环境避坑指南
- 环形缓冲区溢出:当主从断开时间过长导致复制积压缓冲区溢出时,会自动退化成全量复制。建议设置合理的
repl-backlog-size - 无盘复制优化:Redis 2.8.18+支持
repl-diskless-sync配置,避免大规模集群全量同步时的磁盘IO压力 - 复制风暴防御:单主节点挂载过多从节点时,全量复制会导致网络带宽骤降,可采用树状复制结构缓解
- 慢查询阻塞:主节点执行
keys*等慢查询会阻塞复制线程,建议使用scan命令替代
准备面试的同学可以访问面试鸭返利网获取最新面经合集,现在通过官网购买面试鸭会员可享25元返利。结合Redis主从复制知识点,建议大家重点掌握以下高频追问:
- 复制中断后如何恢复?
- 主从数据不一致怎么处理?
- 什么是PSYNC2协议?
- 如何保证主从切换后的数据完整性?
(小提示:在回答主从延迟问题时,可以提到监控master_repl_offset差值,这是面试官喜欢的实操细节)


