面试题答案
一键面试- 生成RDB文件阶段:
- 在执行
SAVE
或BGSAVE
命令生成RDB文件时,会对数据库中的键进行遍历。 - 对于过期键,不会将其写入RDB文件。这意味着过期键在RDB文件生成过程中就被直接忽略掉,不会出现在RDB文件里。
- 在执行
- 加载RDB文件阶段:
- 主服务器模式下:当Redis以主服务器模式运行并加载RDB文件时,会对RDB文件中的所有键进行检查。如果发现某个键已经过期,不会将该过期键加载到数据库中,直接跳过此键。
- 从服务器模式下:当Redis以从服务器模式运行并加载RDB文件时,无论键是否过期,都会直接加载到数据库中。这是因为从服务器的数据最终会被主服务器同步过来,所以加载RDB文件时不需要对过期键进行过滤。在主从复制过程中,从服务器会接收主服务器发送的数据库状态更新命令,从而保证数据一致性,过期键也会在这个过程中得到正确处理。