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。它们的触发条件都是内存使用达到阈值。
淘汰机制的实现
淘汰机制的实现主要就是用于过期主键的删除。
相关文章