Redis中共有八种内存淘汰策略:
- Volatile-lru: 设置了过期时间的Key使用了LRU算法淘汰;
- Allkeys-lru: 所有key使用LRU算法;
- Volatile-lfu: 设置了过期时间的key使用了LFU算法淘汰;
- Allkeys-lfu: 所有key使用了LFU算法淘汰;
- Volatile-random: 设置了过期时间的key使用随机淘汰;
- Allkeys-random: 所有key使用随机淘汰;
- Volatile-ttl: 设置了过期时间的key根据过期时间淘汰,越早过期越早淘汰;
- Noeviction: 默认策略,当内存达到设置的最大值时,所有申请内存的操作都会报错,(如set,ipush等),只读操作如get命令可以正常执行.
LRU、LFU和volatile-ttl都是近似随机算法;
在缓存的内存淘汰策略中有FIFO、LRU、LFU三种,其中LRU和LFU是Redis在使用的.
FIFO是最简单的淘汰策略,遵循先进先出的原则.
LRU算法:表示最近最少使用,该算法根