面试题答案
一键面试- 过期键在RDB备份中的处理:
- 在生成RDB文件时,Redis会对数据库中的每个键值对进行检查。如果某个键已经过期,那么在RDB文件生成过程中,该过期键不会被写入到RDB文件中。这意味着RDB文件只包含未过期的键值对数据。这样做的目的是保证RDB文件所保存的数据都是有效的,避免将已经过期的数据进行备份,从而节省存储空间和提高恢复效率。
- 恢复时Redis对过期键的处理:
- 当从RDB文件恢复数据时,由于RDB文件中不包含过期键,所以恢复到内存中的数据都是未过期的键值对。Redis将这些数据直接加载到内存数据库中,就好像这些键从来没有过期过一样。在恢复完成后,Redis会按照正常的过期键处理逻辑来对待这些键。例如,如果某个键设置了过期时间,在后续的运行过程中,当到达过期时间时,Redis会按照常规方式将其删除,如通过定期删除和惰性删除机制来处理过期键,以保证内存数据的有效性。