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

Redis过期删除(淘汰)策略概念和理解,以及key已过期内存未释放的处理方式

在 Redis 中key过期后,不一定会立刻被删除,主要是基于惰性删除、定期删除这两种方式,下面介绍一下这两种策略

一、惰性删除

1、惰性删除是指客户端访问一个key的时候,redis会基于一个叫 expireIfNeeded() 函数选择异步会同步把该key删除

2、由此可见,这意味着过期key的删除是在访问时候进行的,而不是在过期时立即被删掉的

3、毕竟如果 Redis 监控所有的key的话,这样代价太大了

二、定期删除

1、是通过定时器来实现的,定时器每隔一段时间会触发一次检测函数,触发频次根据配置的参数 hz(赫兹) 来确定的,默认每秒触发10次

2、在检测函数中,会随机选择一批key进行检查它们的过期时间,如果key已经过期则直接删除

小结:

1、虽然redis的key过期不会立刻被删除,但不会影响客户端对该key的访问结果,会基于惰性删除(在访问时判断是否已过期)

2、如果发现大量的key已经过期,而内存却没有释放,则可以通过客户端调用 scan 进行全局扫描一次即可释放内存


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

相关文章:

  • Python数据分析案例70——基于神经网络的时间序列预测(滞后性的效果,预测中存在的问题)
  • 网络编程-UDP套接字
  • 第6章:Python TDD实例变量私有化探索
  • 嵌入式硬件篇---PID控制
  • 昇腾环境ppstreuct部署问题记录
  • UI自动化测试:异常截图和page_source
  • Unity控制物体材质球的改变
  • 解决流网络中不存在s~u~t路径的节点的最大流问题
  • 分享一个开源的网络加速器
  • Vue Web开发(三)
  • 前端路径“@/“的使用和配置
  • 【第一篇】逆向实战,exe游戏 逆向实战之某网络游戏---本文仅供学习-仅供学习-----逆向程序-优雅草央千澈-逆向端游实战---逆向某很火很火的游戏实战。
  • 【Linux】WSL:Win运行Linux
  • 【深度学习】利用Java DL4J 构建和训练医疗影像分析模型
  • 【C语言--趣味游戏系列】--电脑关机整蛊小游戏
  • Brain.js(八):RNNTimeStep 实战教程 - 股票价格预测 - 实操需警慎
  • React v19 正式发布
  • Github 2024-12-04 C开源项目日报 Top9
  • 项目集成篇:springboot集成rabbitmq实现消息发送,消费
  • devops-Dockerfile+Jenkinsfile方式部署Java前后端应用
  • 如何解决maven项目使用Ctrl + /添加注释时的顶格问题
  • 校园综合服务小程序+ssm
  • Halcon 瑕疵检测原理及应用
  • Ubuntu与Centos系统有何区别?
  • 【C语言练习(1)—练习实参和形参之间参数传递】
  • 云原生多模数据库 Lindorm