千锋教育2023版Java面试宝典Java面试200题(含美团、字节、阿里...

一,Redis的过期策略
一般有定时过期, 惰性过期, 定期过期三种
定时过期:
对每个过期时间的key都创建一个定时器,到期就立刻对key进行清除。
惰性过期:
当我们去访问key的时候才会去判断是否过期,过期就删除。
定时过期:
定期扫描清除过期的的key
Redis同时使用惰性和定期过期
二,Redis内存淘汰策略
volatile-lru:删除设置了过期时间key最少访问的key
allkey-lru:所有key删除最少访问的key
volatile-lfu: 删除设置了过期时间key最近访问频率最少的的key
allkey-lfu: 所有的key中使用lfu算法淘汰
volatile-random:在设置过期时间的key中随机淘汰
allkey-random: 在所有的key中随机淘汰
volatile-ttl:内存不足时,根据过期时间淘汰,越早过期的优先淘汰
noeviction默认,内存不足时,写入直接报错