redis缓存淘汰策略

介绍

  在redis中,如果定期删除漏掉了很多键,而又没有及时删除,很容易就会造成内存耗尽。
  内存淘汰机制专门是处理在内存耗尽时,删除旧数据,保证新数据能保存成功。


机制

  redis提供了8种内存置换策略。

策略解析
volatile-lru从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
volatile-ttl从已设置过期时间的数据集中挑选将要过期的数据淘汰
volatile-random从已设置过期时间的数据集中任意选择数据淘汰
volatile-lfu从已设置过期时间的数据集挑选使用频率最低的数据淘汰
allkeys-lru从数据集中挑选最近最少使用的数据淘汰
allkeys-lfu从数据集中挑选使用频率最低的数据淘汰
allkeys-random从数据集(server.db[i].dict)中任意选择数据淘汰
no-enviction当内存不足写入新数据时,写入操作会报错,同时不删除数据(默认策略)

  它们可以分为4类,lru、lfu、random、ttl。它们的触发条件都是内存使用达到阈值。


淘汰机制的实现

  淘汰机制的实现主要就是用于过期主键的删除。