Redis 内存淘汰策略
一、题目
- 谈谈你对Redis中内存淘汰策略的了解
- 如何保证 Redis 中数据都是热点数据
二、内存淘汰策略
2.1、策略
- Volatile-LRU:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰;
- Volatile-TTL:从已设置过期时间的数据集中挑选将要过期的数据淘汰;
- Volatile-Random:从已设置过期时间的数据集中任意选择数据淘汰;
- Allkeys-LRU:当不足以容纳新写入数据时,移除最近最少使用的 key(最常用);
- Allkeys-Random:从数据集中任意选择数据淘汰;
- No-Eviction(默认策略):当内存不足以容纳新写入数据时,新写入操作会报错;
4.0 版本后增加了以下两种:
- Volatile-LFU:从已设置过期时间的数据集中挑选最不经常使用的数据淘汰;
- Allkeys-LFU:当内存不足以容纳新写入数据时,移除最不经常使用的 key;
2.2、LRU算法
LRU(Least Recently Used)表示最近最少使用,该算法根据数据的历史访问记录来进行淘汰数据,其核心思想是 “如果数据最近被访问过,那么将来被访问