redis缓存淘汰策略

redis4.0之后一共有8中淘汰策略。我们按照是否会进行数据淘汰把他们分成两类:

  • 不进行数据淘汰的策略,只有noeviction这一种

  • 会进行数据淘汰的7中其他策略。
    会进行淘汰的其中策略,我们可以进一步根据淘汰候选数据集的范围把他们分成两类:
    在设置了过期时间的数据中进行淘汰,包括volatile-random、volatile-ttl、volatile-lru、volatile-lfu
    在所有数据范围内进行淘汰,包括allkeys-lru、allkeys-random、allkeys-lfu。

  • volatile-ttl在筛选时,会针对设置了过期时间的键值对,根据过期时间的先后进行删除,越早过期的越先被删除。

  • volatile-random就像它的名字一样,在设置了过期时间的键值对中随机删除。

  • volatile-lru 使用lru算法筛选设置了过期时间的键值对

  • volatile-lfu 会使用lfu算法选择设置了过期时间的键值对。

  • allkeys-random策略,从所有键值对中随机选择并删除数据

  • allkeys-lru策略,使用lru算法在所有数据中进行筛选

  • allkeys-lfu策略,使用lfu算法在所有数据中进行筛选

原文地址:https://www.cnblogs.com/liuzhidao/p/14806315.html