首页  >  问答  >  正文

redis中的数据过期后是如何处理的呢?

redis可以设置数据过期时间,如果一个数据过期是如何处理的呢?是有一个计时器实时删除吗?这样太低效了。是下次使用的时候再判断吗?这样随着数据的增多,会不会判断时间越来越长?

黄舟黄舟2711 天前595

全部回复(3)我来回复

  • 黄舟

    黄舟2017-04-21 11:20:35

    这方面你可以搜索Redis过期策略,相关文章很多,我对Redis也仅仅是了解和使用,并没有深究原理。

    回复
    0
  • 怪我咯

    怪我咯2017-04-21 11:20:35

    这篇文章有说明:http://www.cppblog.com/richbirdandy/archive/2011/11/29/161184.html

    以上3种删除过期key的途径,第二种定期删除一定比例的key是主要的删除途径,第一种“读时删除”保证过期key不会被访问到,第三种是一个当内存超出设定时的暴力手段。由此也能看出redis设计的巧妙之处,

    回复
    0
  • 黄舟

    黄舟2017-04-21 11:20:35

    惰性删除和定期删除,具体解释请查看 《Redis 设计与实现》

    回复
    0
  • 取消回复