Redis 主从复制原理
候选人小张在字节 P6 面试中,面试官问:
"Redis 怎么实现读写分离?"
小张说:"配置主从复制,从库负责读。"
面试官追问:"主从复制的原理是什么?"
小张说:"主库把数据同步给从库。"
面试官继续追问:"从库是怎么同步的?增量还是全量?"
小张答不上来了。
【面试官心理】 这道题我用来测试候选人对 Redis 主从复制的理解深度。能说出一主多从的占 60%,能讲清同步原理的占 30%,能说清 SYNC/PSYNC 区别的占 10%。
一、主从复制原理 🔴
1.1 复制架构
1.2 复制流程
1.3 全量同步(SYNC)
1.4 增量同步(PSYNC)
二、复制配置 🔴
2.1 配置从库
2.2 一主多从配置
2.3 查看复制状态
三、复制积压缓冲区 🟡
3.1 作用
复制积压缓冲区(Replication Backlog)是一个固定大小的环形缓冲区,保存主库最近的写命令。
3.2 全量 vs 增量的判断
四、主从延迟问题 🟡
4.1 延迟原因
4.2 监控延迟
4.3 减少延迟
五、故障转移 🟡
5.1 从库选举
当主库不可用时,从库会选举出新的主库:
5.2 选举算法
5.3 手动故障转移
六、常见问题与解决方案 🟡
6.1 复制风暴
6.2 复制超时
💡
如果从库的 repl-diskless-sync 配置为 yes,主库不会保存 RDB 文件到磁盘,而是直接通过网络发送给从库。这减少了磁盘 IO,但增加了 CPU 开销。
【面试官心理】 能说出"复制风暴"和"级联复制"的候选人,基本都有实际运维经验。这是 P6+ 的水准。