官方文档:使用Redis作为LRU缓存
缓存淘汰会在redis设置的最大内存不足时执行,也就是当前使用的内存超过了预阀值。
官网中了解到,64位操作 系统是默认没有大小限制的,32位默认3GB。
1、noenviction
noenviction:不清除数据,只是返回错误,这样会导致浪费掉更多的内存,对大多数写命令(DEL 命令和其他的少数命令例外)。
也就是说,一旦redis使用的内存达到或者超过预阀值,再往redis中添加缓存,就会报错。读取缓存正常使用。
2、allkeys-lru
allkeys-lru:从所有的数据集中挑选最近最少使用的数据淘汰,以供新数据使用。
在所有缓存列表里,淘汰掉用得最少得缓存数据。
3、volatile-lru
volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰,以供新数据使用。
在已经设置了过期时间的缓存列表里,淘汰掉用得最少得缓存数据。
4、 allkeys-random
allkeys-random:从所有数据集中任意选择数据淘汰,以供新数据使用。
在所有缓存列表里,随机淘汰缓存,拼运气的时候来了。
5、volatile-random
volatile-random:从已设置过期时间的数据集中任意选择数据淘汰,以供新数据使用。
在已经设置了过期时间的缓存列表里,随机淘汰缓存,又要拼运气。
6、volatile-ttl
volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰,以供新数据使用。
直接淘汰已经过期的缓存。