【redis使用场景——缓存——数据过期策略 】

redis使用场景——缓存——数据过期策略

  • 定期删除(Active Expiration)
    • 1. 快速模式(Fast Expiration Cycle)
      • 工作流程:
      • 特点:
      • 优点:
    • 2. 慢速模式(Slow Expiration Cycle)
      • 工作流程:
      • 特点:
      • 优点:
  • 惰性删除(Lazy Expiration)
    • 特点:
  • redis的过期删除策略

定期删除(Active Expiration)

Redis 会定期(默认每秒 10 次)随机抽取一些设置了过期时间的 key,检查它们是否过期,如果过期就删除。

1. 快速模式(Fast Expiration Cycle)

工作流程:

  • Redis 每次事件循环(event loop)都会执行快速过期检查

  • 从设置了过期时间的键中随机抽取 20 个进行检查

  • 删除其中已过期的键

  • 如果发现超过 25% 的键已过期,则立即再抽取 20 个进行检查(循环直到低于 25%)

特点:

  • 执行频率高(每秒执行多次)

  • 每次检查的键数量少

  • 执行时间短(不超过 1ms)

  • 主要处理即将过期的键

优点:

  • 对系统性能影响小
  • 能及时清理大部分过期键

2. 慢速模式(Slow Expiration Cycle)

工作流程:

  • 按数据库逐个检查(Redis 默认有 16 个数据库)
  • 从过期字典(expires字典)中随机抽取键进行检查
  • 默认每次扫描 20 个键
  • 如果发现超过 25% 的键已过期,则继续扫描
  • 每次慢速模式的总执行时间不超过 hz 配置的 25%(默认 hz=10,即 25ms)

特点:

  • 执行频率低(默认每秒 1 次)
  • 每次检查的键数量多
  • 执行时间较长(可配置,默认不超过 25ms)
  • 全面扫描所有过期键

优点:

  • 能清理更多过期键
  • 防止大量键堆积过期

惰性删除(Lazy Expiration)

当客户端尝试访问一个 key 时,Redis 会先检查该 key 是否设置了过期时间,如果已过期则立即删除并返回空。

特点:

只有在访问时才会检查过期,对不常访问的 key,即使过期也可能长时间占用内存

redis的过期删除策略

惰性删除+定期删除两种策略进行配合使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88863.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能体Manus和实在Agent的区别

在当今数字化时代,AI 已经深度融入我们的生活和工作。曾经,像 ChatGPT 这样的传统 AI,虽然能在很多方面给我们提供帮助,比如写邮件时它妙笔生花,分析数据时头头是道,可却在最后一步掉了链子 —— 它不会点击…

Prism框架实战:WPF企业级开发全解

以下是一个完整的WPF项目示例,使用Prism框架实现依赖注入、导航、复合命令、模块化和聚合事件功能。项目结构清晰,包含核心功能实现: 项目结构 PrismDemoApp/ ├── PrismDemoApp (主项目) │ ├── Views/ │ │ ├── ShellView…

单片机学习笔记---AD/DA工作原理(含运算放大器的工作原理)

目录 AD/DA介绍 硬件电路模型 硬件电路 运算放大器 DA原理 T型电阻网络DA转换器 PWM型DA转换器 AD原理 逐次逼近型AD转换器 AD/DA性能指标 XPT2046 XPT2046时序 AD/DA介绍 AD(Analog to Digital):模拟-数字转换,将模拟…

matlab实现相控超声波成像

相控超声波成像仿真检测探伤 数据接收 换能器开发 Phased Array Codes/Matlab Examples.pptx , 513230 Phased Array Codes/MATLAB M_files/delay_laws2D.m , 1027 Phased Array Codes/MATLAB M_files/delay_laws2D_int.m , 3290 Phased Array Codes/MATLAB M_files/delay_law…

Stable Diffusion入门-ControlNet 深入理解 第二课:ControlNet模型揭秘与使用技巧

大家好,欢迎回到Stable Diffusion入门-ControlNet 深入理解系列的第二课! 如果你还记得第一篇文章的内容 - 我们已经了解了 ControlNet 的基础概念:它通过预处理器和模型两个强力模块,赋予了AI绘画前所未有的精准控制。 还没看过…

大数据时代UI前端的变革:从静态展示到动态交互

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在大数据时代,信息以前所未有的速度和规模增长。这种数据环境的变化,深…

引脚个数、引脚宽度、引脚之间距离

原图: 最终效果图如下: 1.读取图片并设置参数 read_image (Image, ic_pin) dev_set_draw (margin) dev_set_line_width (2) dev_get_window (WindowHandle) get_image_size (Image, Width, Height) 2.绘制提取的ROI区域 r:58 // 旋转矩形的中心点坐标…

内网和外网有什么区别?如何将内网ip端口地址映射到外网用?

由于局域网的使用,区分出了内网和外网两种概念。以路由器为核心,可以将多台电脑组建成一个局域网,局域网之内的网络便是内网。内网是有距离限制的,只有在路由器信号范围内的电脑才能接入局域网,否则需要进行内网穿透技…

Git仓库的原理理解

国内外主流的 Git 代码托管平台 (持续更新) - JetsungChan - 博客园 .gitignore文件讲解( 忽略规则文件 )[重点] (主要目的是为了节省空间 , 不必要的文件不要管他 , 忽略掉) 重复文件的云储存(只会上传一份) (所以不要怕stm32每个工程文件 , 有几十M , 全部上传会太大 . 实际…

011 Linux进程

🦄 个人主页: 小米里的大麦-CSDN博客 🎏 所属专栏: Linux_小米里的大麦的博客-CSDN博客 🎁 GitHub主页: 小米里的大麦的 GitHub ⚙️ 操作环境: Visual Studio 2022 文章目录 深入理解 Linux 进程管理一、管理哲学/本质:先描述&am…

星型模型(Star Schema)

在数据仓库的体系概念中,星型模型(Star Schema)和雪花模型(Snowflake Schema)是两种常见的数据模型,用于组织和结构化数据,以支持高效的查询和分析。 今天我们先介绍星型模型(Star …

【RAG面试题】如何获取准确的语义表示

目录 回答模板 语义表示是干什么的? 如何获取准确语义表示的关键步骤? 1. 选择合适的 Embedding 模型 2. 正确的文本预处理与切分 3. 文本清洗与标准化 4. 构建合理的向量库 5. 检索质量验证与优化 详细知识点覆盖 面试回答技巧 回答模板…

小程序 API 开发手册:从入门到高级应用一网打尽

在移动互联网浪潮中,小程序已经成为企业服务用户的“第二战场”。不论是微信小程序、支付宝小程序,还是抖音小程序,都在强调一个核心能力:快速响应用户需求。而支撑小程序灵活运行和丰富功能的关键技术之一,正是小程序…

iwebsec靶场sqli注入(2)

​​​​​​06-宽字节注入 1,该漏洞的根本原因是字符集处理不一致(GBK双字节特性)与不安全的转义方式(addslashes)共同导致。构造基础sql注入语句 1%df%27%20%23 漏洞原理 字符集设置:mysql_query("S…

小程序学习笔记:自定义组件创建、引用、应用场景及与页面的区别

在微信小程序开发中,自定义组件是一项极为实用的功能,它能有效提高代码的复用性,降低开发成本,提升开发效率。本文将深入剖析微信小程序自定义组件的各个关键方面,包括创建、引用、应用场景以及与页面的区别&#xff0…

开发数字化绿色低碳园区系统:分阶段实施指南

目录 摘要 背景 核心模块 阶段性开发 分阶段开发实施 第一阶段(3-6个月):搭建核心骨架 第二阶段(6-9个月):扩展功能 第三阶段(9-12个月):深度定制 技术选型 注意事项 实施计划表 小结 摘要 数字化绿色低碳园区系统通过物联网、能源管理和数据分析等技术,…

智能实验室革命:Deepoc大模型驱动全自动化科研新生态

自动化实验执行 自动化实验执行通过机器人技术与智能控制系统的深度融合,重构传统实验操作模式,其核心技术突破体现在以下层面: 1. ​​多模态任务分解与执行架构​​ 基于大模型的任务解析引擎可将复杂实验流程分解为可执行的原子操作序列…

还在手动部署?用Jenkins+Docker+Git实现自动化CI/CD

“每次发版都要手动打包上传,部署宕机了才发现出错?” 你还在重复“开发提测-打包部署-验证回归”的流水线操作?明明可以一键搞定的流程,为何还在亲力亲为?是时候了解并掌握 自动化 CI/CD 的真正威力了! 手…

Stream流中间方法的使用

Stream流的中间方法详解 Stream流的中间方法指那些返回新Stream的操作,允许链式调用。这些方法通常用于数据过滤、映射、排序等操作,不会触发最终计算。 filter方法 filter用于筛选满足条件的元素,接受一个Predicate函数式接口参数。 Lis…

华为云Flexus+DeepSeek征文|华为云ModelArts结合FeedMe:开启AI驱动的RSS阅读新时代

华为云FlexusDeepSeek征文|华为云ModelArts结合FeedMe:开启AI驱动的RSS阅读新时代 前言一、华为云ModelArts Studio平台介绍1.1 ModelArts Studio介绍1.2 ModelArts Studio主要特点1.3 ModelArts Studio使用场景1.4 ModelArts Studio产品架构 二、FeedMe…