Redis key过期了是否会马上删除

首先确认,并不会马上删除,Redis也是有过期删除策略的:

1、定期选取部分数据删除。

2、惰性删除。

定期删除:

所谓定期删除,就是Redis定时去删除过期数据,Redis每100ms执行一次,每次随机抽取20个设置了过期时间的key,检查是否过期,如果发现过期了就直接删除。

具体执行步骤如下:

1、从所有设置了过期时间的key集合中随机抽取20个key。

2、删除抽取的key中已经过期的数据。

3、过期的key超过25%,则继续随机抽取,直到不超过25%。

惰性删除:

惰性也可以理解成懒,原理也很简单,当客户端发送请求查询某一个key时,检查key是否过期,如果过期了,则删除该key。将删除数据的主动权交给了客户端。

总结:

为什么会同时存在两种删除策略呢?个人理解是互补,相互减小压力。

假如Redis中存放了500W个key,且都设置了过期时间,使用定期删除也是需要很长时间才能将过期数据删除,在这期间还会不断有新的过期数据产生。这个时候惰性删除就能帮上忙了;反之也是同样的道理,一个已经过期的key=test1,客户端从来没人访问过,这时候惰性删除就不能起作用了,只能依靠定期删除来清理掉这个key。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值