面试题答案
一键面试网络延迟情况应对策略
- 延迟同步容忍:从节点通常会有一定的同步延迟容忍机制。它会持续尝试接收主节点发来的包含过期键信息的命令(如DEL命令等)。即使网络暂时出现延迟,从节点不会立即判定同步失败,而是等待网络恢复正常后继续接收同步数据。
- 缓存待处理命令:在网络延迟期间,从节点可能会将接收到的部分关于过期键的命令先缓存起来。当网络恢复稳定,按顺序执行这些缓存的命令,以保证过期键处理顺序与主节点一致。
主节点崩溃恢复情况应对策略
- 全量同步:主节点崩溃恢复后,从节点可能需要进行全量同步。主节点会将整个数据集发送给从节点,从节点重建数据状态,包括过期键信息。在这个过程中,主节点会把所有键值对以及它们对应的过期时间等元数据传递给从节点,从节点基于这些数据重建过期键的状态,确保数据完整性。
- 增量同步优化:若主从节点支持部分重同步(PSYNC)机制,主节点崩溃恢复后,会记录自崩溃前最后一次成功同步之后发生的写命令。从节点在进行同步时,先通过握手确认自身已有数据状态,主节点仅发送自崩溃后新产生的涉及过期键处理的增量命令,从节点基于这些增量命令更新自身过期键状态,既减少了同步开销,又保证了过期键处理的一致性。