美文网首页
Redis过期算法

Redis过期算法

作者: 阿福德 | 来源:发表于2019-01-17 19:46 被阅读0次

    (Least Recent Used)算法

    Redis2.6中:

    随机找三条记录,将空闲时间最长的记录删除, 然后在随机找出三条记录,将空闲时间最长的记录删除,直到内存够容纳新记录为止。

    Redis3.0对这个算法进行了“大幅”改进, 其算法为:

    随机找出5条记录,查到到一个按空闲时长排序的有序队列中,删除队列头,然后继续找5条记录,插入到这个队列中,继续删除。直到存够容纳新记录为止。

    过期删除算法:

    被动删除:有访问时,判断是否过期,过期了几删除
    主动删除:如果数据一直没有被访问,则需要定期清除。算法如下:

    在主线程上,每100毫秒执行一次,每次随机抽取20条进行check,将过期了的删除掉,如果其中有超过1/4的都是过期的, 则马上进行下一次随机抽取20条进行check;当然redis也留了一手,不至于主线程长时间都在进行主动删除,那就是,一次删除的时间如果超过了1毫秒,则结束本次主动删除,需要等下一个100毫秒。

    相关文章

      网友评论

          本文标题:Redis过期算法

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