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

redis数据过期策略、淘汰策略

过期键的删除策略​

​1. 被动删除(惰性删除)​

  • ​触发时机​​:当客户端尝试访问某个键时,Redis会先检查该键是否过期。就是说,我们不时时检查每个键是否过期,而是在使用到这个键时检查是否过期,过期就删掉。
  • ​优点​​:对CPU友好,只在使用时检查。
  • ​缺点​​:可能导致大量过期键堆积(内存泄漏风险)。如果一个键一直没被用到,那就会一直堆在内存中,得不到清理

​2. 主动删除(定期删除)​

Redis通过​​定期抽样​​主动清理过期键,每隔一定时间,抽取一定量的key进行检查,后面会全部遍历一遍。不会有得不到清理的key了。

有两种模式:

  • ​模式1:快速扫描(Redis 6.0前)​

    • 每100ms执行一次,随机抽取20个键检查,删除其中已过期的键。
    • 若过期键比例超过25%,则重复该过程。
  • ​模式2:自适应扫描(Redis 6.0+)​

    • 动态调整扫描频率和数量,基于内存压力和过期键比例智能触发。

redis过期策略是两种模式的结合。


内存不足的淘汰策略​

当redis内存不足时(全是没有过期的key),还要往reids里加数据时,Redis就会根据某一规则强制淘汰键(即使未过期)。

淘汰策略有8种

LRU:最近最少使用,当前时间-最后一次使用时间,这个值越大,淘汰优先级越高

LFU:最少频率使用,相同时间内统计每个key使用频率,频率越低,淘汰优先级越高

淘汰策略选择建议

http://www.xdnf.cn/news/12401.html

相关文章:

  • RADIUS-管理员获取共享密钥
  • 【CPU】英特尔酷睿Ultra 5 225H与Ultra7 258V(Lunar Lake架构)PK
  • [蓝桥杯]航班时间
  • 【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)
  • 六、数据库的安全性
  • C++11 中 final 和 override 从入门到精通
  • 在 Spring Boot 中使用 JSP
  • 【实施指南】Android客户端HTTPS双向认证实施指南
  • 如何排查和解决PHP连接数据库MYSQL失败写锁的问题
  • Hive中ORC存储格式的优化方法
  • GC1809:高性能24bit/192kHz音频接收芯片解析
  • ubuntu2404 gpu 没接显示器,如何保证远程显示的分辨率
  • 在Coze平台中 API是什么?插件是什么?它们是一类吗?
  • Java-IO流之转换流详解
  • w381银行管理系统
  • Prime Day前后计划提报BD
  • 应用app的服务器如何增加高并发
  • 【Linux】为 Git 设置 Commit 提交模板方法,可统一个人或者项目的提交风格
  • 第24届GPOWER动力展同期召开“内燃发电设备高质量发展论坛”
  • 关于智能体API参考接口
  • 抽奖系统核心——抽奖管理
  • Odoo电子邮件使用配置指南
  • 免费工具-微软Bing Video Creator
  • 服饰协会小程序源码介绍
  • c++ 通过(MD5和Merkle树)验证文件的完整性。
  • python执行测试用例,allure报乱码且未成功生成报告
  • 目标检测基础概念解析:任务、挑战与算法分类
  • opencv-python的使用——from official tutorial(持续更新)
  • 新版NANO下载烧录过程
  • Unity协程Coroutine与UniTask对比