Redis过期策略


一、Redis过期策略有哪些?

Redis有三种过期策略,分别为:

  • 定时过期:指每个设置过期时间的key都会创建一个定时器,等到过期时间就会清除该key(可以节省内存,但会占用大量cpu资源,影响缓存的响应时间和吞吐量
  • 惰性过期:指每个设置过期时间的key不会自动过期,而是等到被动访问该key时才会判断是否过期来决定是否清除该key(可以节省cpu资源,但是会导致大量没被访问的过期key没被清除,从而占用大量内存
  • 定期过期:指redis会周期性地随机抽取一些设置了过期时间的key,通过判断来决定是否清除该key

Redis默认同时开启惰性过期定期过期这两种过期策略,以求在合理使用cpu和避免内存浪费之间取得平衡

二、Redis是怎样进行定期删除的?

默认每个100ms扫描一次,每次随机抽取20个key

定期删除的过期策略的流程为:

  1. 每100ms随机抽取20个key
  2. 检查这20个key是否过期,删除过期的key
  3. 检查过期数据占比,如果过期数/抽取数大于25%,则重复步骤1,反之则停止删除,等下一轮扫描

文章作者: GaryLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 GaryLee !
  目录