Redis过期删除策略

Redis过期删除策略

什么是redis过期删除策略

Redis的key是可以设置过期时间的,删除已经过期的key的策略就是过期删除策略。每当我们设置了个带过期时间的key,Redis就会把这个key加上一个过期时间存在过期字典里面,当我们查询key时,Redis会先检查这个key在不在过期字典里面,如果不在,就正常读取val,如果在,就要进行过期时间比对,查看其是否过期。

redis的过期删除策略
  1. 定期删除定期删除策略的做法是,每隔一段时间「随机」从数据库中取出一定数量的 key 进行检查,并删除其中的过期key。具体流程:

  1. 从过期字典中随机抽20个key

  1. 检查这些key有没有过期,并删除已过期的key

  1. 如果本轮检查的已经过期的key的数量超过5个(25%)就重复抽取,否则就停止抽取等待下一轮检查。

优点是减少过期key对空间的占用,缺点是执行太频繁对CPU时间非常不友好。

  1. 惰性删除惰性删除策略的做法是,不主动删除过期键,每次从数据库访问 key 时,都检测 key 是否过期,如果过期则删除该 key。

优点是占用很少系统资源,对CPU友好,缺点是过期key对空间占用多。

  1. 定时删除定时删除策略的做法是,在设置 key 的过期时间时,同时创建一个定时事件,当时间到达时,由事件处理器自动执行 key 的删除操作。

优点是对内存非常友好,过期的key会尽快被删除,缺点是对CPU非常不友好

Redis的过期删除策略即针对两种方法进行了综合,选择了「惰性删除+定时删除」的策略,以求在合理使用CPU时间和避免内存浪费之间取得平衡。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值