面试题答案
一键面试过期键在Redis RDB文件格式中的标记方式
在Redis RDB文件格式中,过期键会在存储时额外记录一个过期时间戳。当键值对被写入RDB文件时,如果该键设置了过期时间,RDB文件会以特定格式存储这个过期时间。具体来说,过期时间会紧跟在键值对之后存储,使用与时间相关的编码格式(通常是一个表示秒数的无符号整数)来标记该键的过期时间点。
过期键与正常键在文件结构存储上的不同点
- 额外的过期时间字段:正常键在RDB文件中仅存储键名和对应的值,而过期键除了键名和值之外,还会额外存储过期时间字段。这个字段用于指示该键何时过期。
- 数据读取和处理逻辑:在从RDB文件加载数据时,对于正常键,Redis直接将键值对加载到内存中。而对于过期键,Redis不仅要加载键值对,还要同时读取并记录其过期时间。在运行期间,Redis会根据过期时间判断键是否过期,若过期则不会返回该键对应的值,并且在合适的时机(如定期删除或惰性删除机制触发时)将过期键从内存中移除。