Redis 过期键的删除策略

Redis 过期键的删除策略,第1张

Redis 过期键的删除策略 Redis过期键的删除策略

常见的对于过期键的删除策略有以下几种:

定时删除

在设置每个键的时候,设置一个timer,到期就删除该键

  • 优点:对内存有效,及时删除过期键
  • 缺点:对cpu不友好,当过期键多的时候,删除过期键这一行为会占用很多cpu
惰性删除

只在读取键时,对过期时间进行判断,如果过期就删除,不过期就返回该键。

  • 优点: 对CPU友好
  • 缺点:对内存不友好,对于过期的键,不能及时删除,很可能造成过期键堆积。
定期删除

前两种方式的折中,每隔一段时间执行一次过期键的删除策略,通过限制删除过期键的时长和频率来减少删除 *** 作对CPU时间的影响。

Redis中的策略

Redis中对于过期键的删除策略为惰性删除和定期删除策略的结合。

Redis如何保存过期键

在数据库的 RedisDb 结构中保存了一个名为 expires的字典,字典的键为指向某个键对象,字典的值为一个毫秒级的 unix 时间戳。

RDB、AOF对过期键的处理
  1. 生产RDB文件时,跳过过期键,载入RDB文件时,主服务器跳过过期键,从服务器载入(难以理解)。
  2. AOF重写时,跳过过期键,AOF写入时(服务器以AOF持久化模式运行),对过期键不做处理,

本文章总结于黄健宏老师的《Redis设计与实现》

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5660550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存