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 的部分)从中选出要淘汰的 键,从而减小内存消耗提高性能。