请说明 Redis 主从复制机制的核心工作过程,包括数据同步、增量同步以及故障转移中的角色变更逻辑。
考察说明
考查对 Redis 主从复制底层机制的理解,包括全量、增量同步和复制中断处理。
回答思路
- 【回答框架 1】Redis 主从复制用于数据冗余和读写分离,从节点复制主节点数据。初始建立连接后,从节点向主节点发送 SYNC 或 PSYNC 命令,触发全量复制。
- 【回答框架 2】全量复制时,主节点执行 BGSAVE 生成 RDB 快照,同时缓存新写入命令。快照发送给从节点,从节点加载后应用缓存命令,完成全量同步。
- 【回答框架 3】后续增量复制基于命令传播,主节点将写命令发送给从节点。使用复制偏移量和积压缓冲区,从节点通过 PSYNC 续传。
- 【回答框架 4】复制中断时,若偏移量仍在积压缓冲区,则增量续传;否则重新全量复制。主节点更换时,从节点需对新主节点执行全量同步。
- 【关键点 1】主从复制采用异步方式,从节点可能短暂滞后。
- 【关键点 2】全量复制使用 RDB 快照和缓冲区。
- 【关键点 3】增量复制基于命令传播和偏移量。
- 【关键点 4】复制中断需根据偏移量决定增量或全量同步。
- 【易错点 1】不可简单认为主从复制能保证强一致性。
- 【易错点 2】全量复制期间性能影响较大,需评估。
- 【易错点 3】缓存过期策略和网络分区会影响复制状态。