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