Redis的过期key的删除策略

介绍

我们可以给Redis中的key设置过期时间,那么当key过期时Redis是如何处理的呢?

redis过期key的删除策略有如下两种

  1. 惰性删除
  2. 定时删除

惰性删除

客户端在访问key的时候,对key的过期时间进行校验,如果过期了就立即删除

定时删除

Redis会将设置了过期时间的key放在一个独立的字典中,定时遍历这个字典来删除过期的key,遍历策略如下

  1. 每秒进行10次过期扫描,每次从过期字典中随机选出20个key
  2. 删除20个key中已经过期的key
  3. 如果过期key的比例超过1/4,则进行步骤一
  4. 每次扫描时间的上限默认不超过25ms,避免线程卡死

为什么要了解redis过期key的删除策略?

只有一个目的,让你知道设置key的过期时间为一个随机范围,不能都在同一时间过期,不然频繁的扫描过期字典会造成客户端的请求出现卡顿

参考博客

《Redis深度历险》老钱

猜你喜欢

转载自blog.csdn.net/zzti_erlie/article/details/106739238