Redis的数据过期删除策略

226 阅读1分钟

一、概念

redis对数据设置数据的有效时间,数据过期以后,需要将数据从内存中删除掉。可以按照不同的规则进行删除,这种删除规则就被称为数据的删除策略(数据过期策略)。 redis的数据过期删除策略是惰性删除+定期删除两种结合使用。

二、惰性删除

1、概念

设置该key过期时间后,不去管他。当需要该key时,再检查其是否过期。如果过期,就删掉它。

set name lei 10
#发现name过期了,直接删除key
get name 

2、优缺点

  1. 优点:对CPU友好,只会在使用该key时才会进行过期检查。
  2. 缺点:对内存不友好。过期key如果一直没有使用,会一直存在内存中。

三、定期删除

1、概念

每隔一段时间,就会对一些key进行检查,删除里面过期的key(从一定数量的数据库中取出一定数量的随机key进行检查,并删除其中的过期key)。

2、两种模式

  1. SLOW模式是定时任务,执行频率默认为10hz(每秒执行10次),每次清理耗时不超过25ms,可以通过修改配置文件redis.conf的hz选项来调整这个次数。
  2. FAST模式执行频率不固定,但两次间隔不低于2ms,每次耗时不超过1ms。

3、优缺点

  1. 优点:可以通过限制删除操作执行的时长和频率来减少删除操作对CPU的影响。另外定期删除,也能有效释放过期键占用的内存。
  2. 缺点:难以确定删除操作执行的时长和频率。