一、概念
redis对数据设置数据的有效时间,数据过期以后,需要将数据从内存中删除掉。可以按照不同的规则进行删除,这种删除规则就被称为数据的删除策略(数据过期策略)。 redis的数据过期删除策略是惰性删除+定期删除两种结合使用。
二、惰性删除
1、概念
设置该key过期时间后,不去管他。当需要该key时,再检查其是否过期。如果过期,就删掉它。
set name lei 10
#发现name过期了,直接删除key
get name
2、优缺点
- 优点:对CPU友好,只会在使用该key时才会进行过期检查。
- 缺点:对内存不友好。过期key如果一直没有使用,会一直存在内存中。
三、定期删除
1、概念
每隔一段时间,就会对一些key进行检查,删除里面过期的key(从一定数量的数据库中取出一定数量的随机key进行检查,并删除其中的过期key)。
2、两种模式
- SLOW模式是定时任务,执行频率默认为10hz(每秒执行10次),每次清理耗时不超过25ms,可以通过修改配置文件redis.conf的hz选项来调整这个次数。
- FAST模式执行频率不固定,但两次间隔不低于2ms,每次耗时不超过1ms。
3、优缺点
- 优点:可以通过限制删除操作执行的时长和频率来减少删除操作对CPU的影响。另外定期删除,也能有效释放过期键占用的内存。
- 缺点:难以确定删除操作执行的时长和频率。