美文网首页
Redis的过期键的删除策略

Redis的过期键的删除策略

作者: 不ji的石头 | 来源:发表于2021-11-10 11:49 被阅读0次

    缘由

    因为redis数据是基于内存的,然而内存是非常宝贵的资源,然后我们就会对一些不常用或者只用一次的数据进行存活时间设置,这样才能提高内存的使用效率。但是我们在什么时候才把这些过期的数据移除内存呢?是过期马上删除,还是等有许多过期数据之后集中删除?主要有以下几种策略。

    • 立即删除

    在设置某个key 的过期时间同时,我们创建一个定时器,让定时器在该过期时间到来时,立即执行对其进行删除的操作。

    优点:

    立即删除对内存是最友好的,能够保存内存的key一旦过期就能立即从内存中删除。

    缺点

    对CPU最不友好,在过期键比较多的时候,删除过期键会占用一部分 CPU 时间,对服务器的响应时间和吞吐量造成影响

    • 惰性过期:

    过期不会马上删了,只有当下次访问⼀个key时,先判断该key是否已过期,过期则清除。

    优点:

    该策略可以最⼤化地节省CPU资源,却对内存⾮常不友好。极端情况可能出现⼤量的过期key没有再次被访问,从⽽不会被清除,占⽤⼤量内存。

    • 定期过期:

    每隔⼀定的时间,会扫描⼀定数量的数据库的设置了过期数据字典中⼀定数量的key,并清除其中已过期的key。该策略是⼀个折中⽅案,可以通过设置多久扫描一次和一次扫描多久来使得CPU和内存资源达到最优的平衡效果。

    Redis中同时使⽤了惰性过期和定期过期两种过期策略。

    相关文章

      网友评论

          本文标题:Redis的过期键的删除策略

          本文链接:https://www.haomeiwen.com/subject/icwmzltx.html