Redis的回收策略(淘汰策略)是什么?

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis的回收策略(淘汰策略)是什么?相关的知识,希望对你有一定的参考价值。

volatile-lru:从已设置过期时间的数据集( server.db[i].expires)中挑选最近最少使用的数据淘汰

volatile-ttl:从已设置过期时间的数据集( server.db[i].expires)中挑选将要过期的数据淘汰

volatile-random:从已设置过期时间的数据集( server.db[i].expires)中任意选择数据淘汰

allkeys-lru:从数据集( server.db[i].dict)中挑选最近最少使用的数据淘汰

allkeys-random:从数据集( server.db[i].dict)中任意选择数据淘汰

no-enviction(驱逐) :禁止驱逐数据

注意这里的6 种机制,volatile 和allkeys 规定了是对已设置过期时间的数据集淘汰数据还是从全部数据集淘汰数据, 后面的lru、ttl 以及random 是三种不同的淘汰策略,再加上一种no-enviction 永不回收的策略。

使用策略规则:

1、如果数据呈现幂律分布,也就是一部分数据访问频率高,一部分数据访问频率低, 则使用allkeys-lru

2、如果数据呈现平等分布,也就是所有的数据访问频率都相同, 则使用allkeys-random

以上是关于Redis的回收策略(淘汰策略)是什么?的主要内容,如果未能解决你的问题,请参考以下文章

redis的6种回收策略

面试题之redis的内存回收策略

内存回收策略

Redis 系列(04-2)Redis原理 - 内存回收

redis内存回收——过期淘汰

Redis_09_Redis内存回收机制