【redis教程】12、redis中过期数据的删除策略

redis是一种内存级的数据,所有数据均放在内存中,内存中的数据可以通过ttl指令获取其状态,

  • xx:具有时效性的数据
  • -1:永久有效的数据
  • -2:已经过期的数据 或 被删除的数据 或 未定义的数据

对于过期的数据要redis根据会删除策略进行删除。删除策略有:

  • 定时删除
  • 惰性删除
  • 定期删除

一、定时删除

创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作。
优点 节约内存,到时就删除,快速释放内存
缺点 当CPU压力很大时,会影响redis服务器的相应时间和指令吞吐量
总结 用处理器性能换取存储空间

二、惰性删除

数据到期的时候先不忙删,直到再次访问此数据时再删除。
优点 节约CPU性能,发现必须删除时才删除
缺点 内存压力很大,出现长期占用内存的数据
总结 用存储空间换取处理器性能

三、定期删除

周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频率。
特点1 CPU性能占用设置有峰值,检测频率可自定义设置
特点2 内存压力不是很大,产期占用内存的冷数据会被持续清理
总结 周期性抽查存储空间(过期数据的多的话会增加抽查次数的概率)

四、数据逐出策略

存储新数据时会检查内存是否满足大小,如果内存不足就要使用数据逐出策略,在4.0以上版本默认不逐出。
在这里插入图片描述
在这里插入图片描述

发布了28 篇原创文章 · 获赞 1 · 访问量 1851

猜你喜欢

转载自blog.csdn.net/m0_46130323/article/details/104316075