面试题答案
一键面试- 关键步骤和机制:
- 主节点处理过期键:当主节点上的键过期时,主节点会在过期键到达过期时间时,按照其过期策略(如惰性删除、定期删除)对过期键进行处理。如果是惰性删除,当客户端访问该过期键时,主节点会发现键已过期并删除;如果是定期删除,主节点会在定期检查时删除部分过期键。
- AOF日志记录:若主节点开启了AOF持久化,主节点在删除过期键后,会将该删除操作以写命令的形式追加到AOF日志中(例如
DEL key
)。 - 主从复制:
- 全量复制:从节点初次连接主节点时,主节点会执行BGSAVE命令生成RDB文件,并将RDB文件发送给从节点。RDB文件中不包含已过期的键,从节点加载RDB文件后,数据状态就与主节点生成RDB文件时保持一致(不包含过期键)。同时,主节点会将全量复制缓冲区中记录的写命令(包括过期键的删除命令,如果在生成RDB文件到发送给从节点这段时间内有过期键删除操作)发送给从节点,从节点执行这些写命令进一步同步数据。
- 增量复制:在全量复制完成后,主从节点之间会进行增量复制。主节点会把写命令(包括过期键的删除命令)发送给从节点,从节点接收到这些命令后执行,从而保持与主节点数据的一致性。这确保了主节点上过期键的删除操作能及时同步到从节点。
- 从节点处理:从节点接收到主节点发送的过期键删除命令(通过AOF重放或者增量复制的写命令)后,会执行该删除命令,将对应的键从自己的数据空间中删除,以此实现与主节点过期键状态的同步。