MST
星途 面试题库

面试题:Redis RDB中过期键在文件格式里有什么特别标识

请描述在Redis RDB文件格式中,过期键是如何被标记的?它们与正常键在文件结构存储上有哪些不同点?
46.0万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

过期键在Redis RDB文件格式中的标记方式

在Redis RDB文件格式中,过期键会在存储时额外记录一个过期时间戳。当键值对被写入RDB文件时,如果该键设置了过期时间,RDB文件会以特定格式存储这个过期时间。具体来说,过期时间会紧跟在键值对之后存储,使用与时间相关的编码格式(通常是一个表示秒数的无符号整数)来标记该键的过期时间点。

过期键与正常键在文件结构存储上的不同点

  1. 额外的过期时间字段:正常键在RDB文件中仅存储键名和对应的值,而过期键除了键名和值之外,还会额外存储过期时间字段。这个字段用于指示该键何时过期。
  2. 数据读取和处理逻辑:在从RDB文件加载数据时,对于正常键,Redis直接将键值对加载到内存中。而对于过期键,Redis不仅要加载键值对,还要同时读取并记录其过期时间。在运行期间,Redis会根据过期时间判断键是否过期,若过期则不会返回该键对应的值,并且在合适的时机(如定期删除或惰性删除机制触发时)将过期键从内存中移除。