Redis过期密钥删除策略常见的过期密钥删除策略包括:
日程删除设置每个密钥时,设置timer,过期后删除密钥
优点:内存有效,立即删除过期密钥的缺点:对cpu不友好。 在有效期限密钥较多的情况下,删除有效期限密钥的行为占用较多的cpu,惯性删除只有在读密钥时才能判断有效期限,过期后删除,但过期后返回该密钥。
优点:对CPU友好的缺点:对内存不友好。 对于过期的密钥,无法立即删除,过期的密钥很可能会滞留。 通过定期删除前两种方法的折衷,每隔一段时间运行过期密钥删除策略,并限制删除过期密钥的时间和频率,减少删除操作对CPU时间的影响。
Redis策略Redis过期密钥的删除策略是惯性删除和定期删除策略的组合。
Redis如何存储过期密钥数据库的RedisDb结构包含一个名为expires的词典。 词典的关键点指向关键对象,词典的值是毫秒级的unix时间戳。
RDB、AOF的过期密钥处理在生产RDB文件时,跳过过期密钥,加载RDB文件时,主服务器跳过过期密钥,从服务器加载。 AOF改写时,跳过有效期限密钥,AOF写入时(服务器在AOF持久化模式下工作),不处理有效期限密钥。 本文归纳为专心致志的蝴蝶老师《Redis设计与实现》