Redis 作为一个内存数据库,在内存空间不足的时候,为了保证命中率,就会和我们操作系统中的页面置换算法类似,选择一定的数据淘汰策略。
1、no enviction
禁止驱逐数据(默认策略),当内存不足以容纳新入数据时,新写入操作就会报错。采用 no-enviction 策略可以保证数据不被丢失。
2、allkeys random
从所有数据中任意选择数据淘汰。
3、allkeys lfu
从所有数据中挑选使用频率最低的数据淘汰。
4、allkeys lru
从所有数据中挑选最近最少使用的数据淘汰。
5、volatile lru
从已设置过期时间的数据集挑选最近最少使用的数据淘汰。
6、volatile lfu
从已设置过期时间的数据集挑选使用频率最低的数据淘汰。
7、volatile ttl
从已设置过期时间的数据集中挑选将要过期的数据淘汰。
8、volatile random
从已设置过期时间的数据集中任意选择数据淘汰。