Redis的三种删除策略

时间:2025-04-01 07:21:05

redis有三种数据过期策略:定时删除,惰性删除,定期删除。

一.定时删除

在设置key的过期时间时设置定时器,当key过期时通过定时器删除key。

优点:保证过期的key被及时删除。

缺点:在key过多时,删除key会占用cpu资源,对服务器的响应时间和吞吐量造成影响。同时为每个key设置定时器有性能消耗。

二.惰性删除

对于过期的key不作任何处理,当获取key时检查key是否过期,过期就删除,否则直接返回。

优点:删除key操作只在取出key时发生,只删除当前key,占用CPU少。

缺点:当大量key超出过期时间后未被使用,会占用大量内存。

三.定期删除

定时删除和惰性删除的折中方案,每隔一段时间检查redis中过期的key,并通过限制删除执行的时长和频率。

优点:删除key时限制了删除操作的时长和频率,减少了对CPU的影响。同时删除了过期key,减少了内存的占用。

缺点:如果定期删除太频繁,或者执行时间太长,会退化为定时删除,占用CPU资源。如果删除执行时间太短,或者执行频率低,会退化为惰性删除,出现内存浪费。

Redis使用的是过期删除+惰性删除的策略,在合理使用CPU和避免内存浪费之间平衡。