Redis过期策略和内存淘汰机制

本文详细介绍了Redis中的过期策略,包括惰性删除和定期删除机制,以及它们如何配合内存淘汰策略来管理缓存数据的生命周期,以避免内存耗尽问题。
摘要由CSDN通过智能技术生成

内存淘汰策略是当内存不够用时才会触发的一种机制,是缓存服务层面的操作,而过期策略定义的是具体缓存数据何时失效。我们在使用Redis的时候经常会给redis的key设置一个过期时间如:EXPIRE key 30,过期策略就是指当 Redis 中缓存的 key 过期了,Redis 如何处理。

对于已经过期的数据,Redis将使用两种策略搭配使用来删除这些过期的键值,分别是惰性删除,定期删除。

惰性删除

惰性删除 是指 Redis 服务器不主动删除过期的键值,而是在客户端要获取某个键值时,Redis会先去检测一下这个key是否已经过期,如果没有过期则返回给客户端,如果已经过期了,那么Redis会删除这个key并返回null给客户端。

惰性删除可以解决一些过期了,但没被定期删除随机抽取到的key。但有些过期的key既没有被随机抽取,也没有被客户端访问,就会一直保留在数据库,占用内存,长期下去可能会导致内存耗尽。所以Redis提供了内存淘汰机制来解决这个问题。

惰性删除的优点是不会浪费太多的系统资源,只是在每次访问时才检查键值是否过期。缺点是像上面说的删除过期键不及时,造成了一定的空间浪费。

定期删除

定期删除 是指 Redis 服务器每隔一段时间会检查一下缓存数据库,看看是否有过期键可以被清除。默认情况下 Redis 定期检查的频率是每秒扫描 10 次,用于定期清除过期键。当然此值还可以通过配置文件进行设置,在 redis.conf 中修改配置“hz”即可,默认的值为“hz 10”。

因为key太多,如果全盘扫描所有的key会非常耗性能,所以定期删除是随机抽取一些key来删除。这样就有可能删除不完,需要惰性删除配合。

本节内容讲了Redis的过期策略:惰性删除和定期删除,还讲了Redis的内存淘汰策略,他们是两个完全不同的概念,大家不要搞混淆了。

如果本文对你有帮助,

别忘记给我个三连:

点赞,转发,评论

咱们下期见!

收藏 等于白嫖**,**点赞 才是真情!

End

干货分享

这里为大家准备了一份小小的礼物,关注公众号,输入如下代码,即可获得百度网盘地址,无套路领取!

001:《程序员必读书籍》

002:《从无到有搭建中小型互联网公司后台服务架构与运维架构》

003:《互联网企业高并发解决方案》

004:《互联网架构教学视频》

006:《SpringBoot实现点餐系统》

007:《SpringSecurity实战视频》

008:《Hadoop实战教学视频》

009:《腾讯2019Techo开发者大会PPT》

010: 微信交流群

近期热文top

1、关于JWT Token 自动续期的解决方案

2、还不了解ETL,看看这篇文章?

3、为什么微服务需要api网关

4、架构师之路-微服务技术选型

5、RocketMQ进阶 - 事务消息

我就知道你“在看”

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。
当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。

更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
712187110470)]

[外链图片转存中…(img-jJnQe8l8-1712187110471)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值