redis数据存在内存中,已经过期的数据不会立即删除
三种删除策略
1.定时删除
Key设置的有过期时间,当过期了定时任务执行删除
优点
节省内存,过期即删
缺点
CPU压力大,影响服务器的响应时间和吞吐量
用时间换空间
2.惰性删除
当过期时不处理,下次访问到的时候处理
优点
不占用CPU, 只有在访问时才会判断删除过期数据
缺点
内存占用大,如一直不适用一直占用,浪费内存
用空间换时间
3.定期删除
周期性的访问redis,才用随机抽样的方式,用过期数据占比来控制删除频率
策略对比
1︰定时删除:
节约内存,无占用,
不分时段占用CPU资源,
频度高,拿时间换空间
2:惰性删除:
内存占用严重
延时执行,
CPU利用率高拿空间换时间
3:定期删除:
内存定期随机清理
每秒花费固定的CPU资源维护内存
随机抽查,重点抽查
淘汰策略
当数据没有过期或者不带有时效性,全是永久性数据,存储时内存不足会执行淘汰策略
对带时效性的数据
挑选最近最少使用的、最近使用最少的、快要过期的和随机淘汰
对全库的数据
挑选最近最少使用的、最近使用最少的和随机淘汰