redis 中的键值淘汰策略

当使用的内存到达上限后,redis 提供了 6 种策略来淘汰键值:

策略 描述
volatile-lru 在所有设置了过期时间的键值中根据 LRU 算法淘汰最近最少使用的
allkeys-lru 对数据库中所有元素根据 LRU 算法淘汰最近最少使用的
volatile-random 从设置了过期时间的元素中随机淘汰
allkeys->random 数据库所有元素中随机淘汰
volatile-ttl 从设置了过期时间的键值中淘汰快要超时的
noeviction 不淘汰任何已有键值,直接给写操作返回错误

LRU 是最近最少使用的,直译出来就是最久没有使用的。

redis 默认的淘汰策略是 volatile-lru,修改淘汰策略可以通过修改 redis.conf 文件中的 maxmemory-policy 字段,配置中关于各种淘汰策略也有详细的解释。使用 grep volatile-lru redis.conf -A 6 -n 可以过滤出这部分配置 :

发表评论