当前位置: 首页 > article >正文

Redis的数据过期清除策略

Redis 的数据过期清除策略主要有以下几种:

  • 定时删除
    • 原理:在设置键值对的过期时间时,同时创建一个定时器,当定时器到期,对应的键值对会被立即删除。例如,当执行 SETEX key 10 value (设置一个有效期为 10 秒的键值对)时,Redis 内部就启动一个 10 秒的定时器,时间一到,键key和它对应的值value 马上就从数据库里清除。
    • 优缺点:优点是能精准、及时地删除过期数据,内存能得到高效利用;缺点是定时器的创建与维护会消耗额外的 CPU 资源,特别是在大量键值对设置了过期时间的场景下,频繁创建定时器会拖慢系统性能。
  • 惰性删除
    • 原理:只有当客户端尝试访问某个已经过期的键时,Redis 才会去检查它是否过期,若过期则进行删除。比如客户端执行 GET key,Redis 先查看key是否过期,要是过期了,就把这个key删除,再返回空值给客户端 。
    • 优缺点:优点是几乎没有额外的 CPU 消耗,因为只有访问时才检查删除,节省系统资源;缺点也很明显,过期的数据如果一直没被访问到,就会一直留在内存中,导致内存浪费,长期积累下来可能让 Redis 内存占用过高。
  • 定期删除
    • 原理:Redis 每隔一段时间,就会随机抽取一批设置了过期时间的键,检查并删除其中过期的键。这个抽取的周期和每次抽取的样本数量可以通过配置参数来调整,例如在 Redis 配置文件中设置hz参数,它和检查周期相关,hz值越高,检查越频繁 。
    • 优缺点:优点是结合了定时删除和惰性删除的长处,既不会像定时删除那样过度消耗 CPU,又能避免惰性删除带来的内存长期占用问题;缺点是由于是随机抽取样本检查,有可能存在部分过期键没有及时被删除的情况,不过总体上对内存管理还是比较有效的。

在实际应用中,Redis 通常采用惰性删除和定期删除相结合的方式,兼顾 CPU 资源消耗和内存清理效率,以此保障 Redis 在处理海量数据时,既能稳定运行,又能合理利用内存资源。


http://www.kler.cn/a/465581.html

相关文章:

  • 周亚辉投资笔记2025系列第1篇:机器人时代的社会结构模型与十年后中国首富预测
  • xdoj ROT13加密
  • 【现代摄像头作为一种视频输入摄像头】
  • B4004 [GESP202406 三级] 寻找倍数
  • /ete/security/limits.conf参数详解
  • 小程序学习07—— uniapp组件通信props和$emit和插槽语法
  • 云计算复习
  • 聊天机器人Rasa面试内容整理-Rasa NLU 与 Rasa Core 的功能与区别
  • 低代码引擎插件开发:开启开发的便捷与创新之路
  • AI 将在今年获得“永久记忆”,2028美国会耗尽能源储备
  • 【时时三省】(C语言基础)常见的动态内存错误
  • Spring 核心技术解析【纯干货版】- IV:Spring 切面编程模块 Spring-Aop 模块精讲
  • 更改element-plus的table样式
  • 25.Java JUC 引入(进程与线程、线程的状态、并发与并行、管程、用户线程与守护线程)
  • Apache OFBiz rmi反序列化漏洞
  • 【Go学习】-01-3-函数 结构体 接口 IO
  • yolov5和yolov8的区别
  • Windows平台下如何手动安装MYSQL
  • MATLAB中使用牛顿-拉夫逊法进行电力系统潮流计算
  • 高级RAG技巧(二)