美文网首页
Redis淘汰策略

Redis淘汰策略

作者: Muscleape | 来源:发表于2020-04-19 21:51 被阅读0次

    Redis有8种淘汰策略(常规的+Redis4.0新增的2种lfu策略)

    名词解释

    lru(less recently used)最近最少使用
    ttl(time to live)存活时间
    lfu(least frequency use)最少使用频率

    淘汰策略

    1、 no-eviction(默认策略):不淘汰策略,超过最大内存则返回错误信息;
    2、 volatile-lru:已经设置过期时间的KV集中,优先淘汰最近最少使用的;
    3、 volatile-ttl:已经设置过期时间的KV集中,优先淘汰剩余存活时间短的;
    4、 volatile-random:已经设置过期时间的KV集中,随机选择数据淘汰;
    5、 allkeys-lru:所有KV集中,优先淘汰最近最少使用的;
    6、 allkeys-random:所有KV集中,随机选择需要淘汰的数据;
    新增的两种lfu策略:统计访问频率,将访问频率最少的淘汰掉;
    7、 volatile-lfu
    8、 allkeys-lfu

    lru和lfu的区别

    时间:t1~~~~~t2~~~~~t3~~~~t4
    ~~~~A~A~A~~A~A~A~A~A~~A~~~
    ~~~~B~~~~~~B~~~~~~B~~~~~~B~
    

    在上图中,分别表示key A和B的使用情况,在t4时刻根据lru和lfu两种淘汰策略:

    • lru策略:因为最近使用的是B,所以会淘汰A;
    • lfu策略:A的使用频率高很多,所以淘汰的是B;

    相关文章

      网友评论

          本文标题:Redis淘汰策略

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