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

Redis过期键删除策略

Redis有三种过期键的删除策略。

  • 定时删除:在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除策略。
  • 惰性删除:放任键过期不管,但每次从键空间获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;否则,返回该键。
  • 定期删除:每隔一段时间,程序就对数据库进行一次检查,删除里面过期的键。删除数量以及间隔周期由算法决定。

三种策略中,第一种和第三种是主动删除,第二种是被动删除。

定时删除

定时删除策略对内存是友好的,但是对CPU是不友好的。 因为一方面,定时删除可以保证过期的键尽快被删除,释放占用的内存;而另一方面,在过期键较多的情况下,删除操作会占用大量CPU时间,在内存不紧张而CPU紧张的情况下, 将CPU时间用在删除和当前任务无关的键上, 会对服务器的响应时间和吞吐量造成较大的影响。

惰性删除

惰性删除策略对CPU是友好的,但是对内存是不友好的。 因为这种策略不会在删除其他无关的过期键上花费任何CPU时间,但是如果数据库中有非常多的过期键,而这些键又没有被访问到的话, 它们也许永远不会被删除,甚至可以把这种情况看成内存泄漏——无用的垃圾数据占用了大量的内存。

定期删除

定期删除策略是对前两种删除策略的一种整合和折中。

  • 定期删除策略通过每隔一段时间执行一次删除过期键的操作,并通过限制删除键操作执行的时长和频率来减少删除操作对CPU时间的影响。
  • 通过定期删除过期键,有效减少了因为过期键而带来的内存浪费。

定期删除的难点是确定删除操作执行的时长和频率。

最后给大家推荐一个LinuxC/C++高级架构系统教程的学习资源与课程,可以帮助你有方向、更细致地学习C/C++后端开发,具体内容请见 https://xxetb.xetslk.com/s/1o04uB

http://www.lryc.cn/news/349495.html

相关文章:

  • 413 Request Entity Too Large
  • 工业无风扇计算机的优点
  • 个人学习计划
  • 【电控实物-LK电机】
  • 《Mybatis》系列文章目录
  • ARM机密计算组件
  • Linux 生态与工具
  • RHCE网络服务配置之循环执行的例行性工作
  • vue3使用el-radio-group获取表格数据无法选中问题
  • java并发
  • Python Selenium Grid 环境快速搭建
  • 电机控制系列模块解析(21)—— 弱磁控制
  • 【3dmax笔记】022:文件合并、导入、导出
  • 8、QT——QLabel使用小记2
  • python实现读取串口数据-使用LibModbus库实现一个实时读取串口数据
  • 类与面向对象编程(Object-Oriented Programming, OOP)
  • 引用数据类型 栈内存 堆内存
  • 【class8】人工智能初步(图像识别-----卷积神经网络)
  • Node.js安装及环境配置(超详细!保姆级!!)
  • 利用反射如何动态生成sql
  • SpringBoot项目中使用Redis,Mybatis和JWT
  • CSS2(一):CSS选择器
  • LeetCode题练习与总结:不同的二叉搜索树--96
  • 第八十一章 将 Web 应用程序与远程 Web 服务器结合使用 - 如果从 Web 服务器提供静态文件
  • AVL树、红黑树
  • Vscode编辑器 js 输入log自动补全
  • structured concurrency
  • 【免费】在线识别通用验证码接口
  • 如何通过汽车制造供应商协同平台,提高供应链的效率与稳定性?
  • 使用LangChain创建简易聊天机器人