Redis淘汰策略
Redis有6大淘汰策略
| 策略 | 描述 |
|---|---|
| volatile-lru | 从已设置过期时间的K-V集和中优先对最近最少使用(less recently used)的数据淘汰 |
| volatile-ttl | 从已设置过期时间的K-V集和中优先对剩余时间短(time to live)的数据淘汰 |
| volatile-random | 从已设置过期时间的K-V集和中随机选择数据淘汰 |
| allkeys-lru | 从所有K-V集和中优先对最近最少使用的数据淘汰 |
| allkeys-random | 从所有K-V集和中随机选择数据进行淘汰 |
| noeviction | 不淘汰策略,若超过最大内存, 返回错误信息 |
- Redis 4.0 加入了LFU(least frequency use)淘汰策略,包括
volatile-lfu和allkeys-lfu,通过统计访问频率,将访问频率最少,即最不经常使用的K-V对淘汰。 - Redis是内存nosql库,在实际的淘汰实现中,Redis 的淘汰算法是抽取一小部分(只限于设置了 expire 的部分)从中选出要淘汰的 键,从而减小内存消耗提高性能。