Redis提供了两种数据过期策略 惰性删除 和 定期删除
惰性删除
当某个key过期时,不马上删除,而是在调用时,再判断它是否过期,如果过期再删除它
优点 : 对CPU友好,对于很多用不到的key,不用浪费时间进行过期检查
缺点 : 对内存不友好,如果某个key过期了,但一直没使用,那么这个key就会一直留在内存中
定期删除
每隔一段时间,就对一定量的key进行检查,删除里面过期的key
注意: 每次只是检查一定量的key而不是全部key,随着时间的推移,才会遍历Redis中全部的key
定期删除有两种策略:
- SLOW模式 : 定时任务,执行频率默认为10Hz,即每秒执行10次,可以通过 redis.conf 设置执行频率
- FAST模式 :执行频率不固定,但两次间隔不低于2ms
*优点:*对内存友好
*缺点:*对CPU比较不友好,但是可以通过减少执行的频率来降低对CPU的影响
Redis的过期删除策略: 惰性删除 + 定期删除 两种策略配合使用