Redis缓存过期机制
一、给Redis设置过过期时间的key,过期后有下面两种处理方式
1.(主动)定期删除
他会定时去抽查我们随机的key,时间默认是1秒10次,如果抽查到的key是已经过期的就会被删除
2.(被动)惰性删除
当过期的key被请求到的时候,我们redis才会被动的去检测下这个key有没有过期,如果过期了就会把它从内存中删除
二、内存淘汰管理机制
1.MEMORY MANAGEMENT
最大的阈值maxmemory,当内存超过这个之后就会去清理我们那些没有设置过期时间的key
2.下面是处理超内存后的集中方式
volatile-lru -->
allkeys-lru
volatile-lfu -->清理设置过期时间,最少用到的key值
allkeys-lfu --> 会帮我请清理一些不怎么被用到的存在时间比较久的缓存
volatile-random --> 随机删除设置过过期时间的一些key
allkeys-random --> 随机删除一些key
volatile-ttl --> 删除即将到期的key值
noeviction --> 内存满后直接提示一个错误,告知内存已满(默认被使用)
LRU means Least Recently Used 最少被使用 – 时间方面
LFU means Least Frequently Used 最少被使用 – 次数方面