惰性删除、定期删除和Redis的淘汰策略有什么区别?

news/2024/4/19 14:25:55/文章来源:https://blog.csdn.net/QGhurt/article/details/136547577

惰性删除(Lazy Expiration)和定期删除(Periodic Expiration)是Redis处理键过期的两种策略,它们共同作用以确保过期数据能够被有效地清理,但主要针对的是带有过期时间的键。

  • 惰性删除
    当客户端尝试访问一个键时,Redis服务器才会检查这个键是否已经过期。如果发现该键已过期,则在返回结果前立即将其从数据库中删除。这种策略节省了CPU资源,因为它只在访问时才进行检查和删除操作,但存在可能长时间不访问而导致内存无法及时释放的风险。

  • 定期删除
    Redis会周期性地主动查找并删除一部分已过期的键,避免大量过期键长期占用内存空间。例如,默认情况下Redis每秒随机抽取一定数量的键检查它们的过期时间,并删除已过期的键。这种方式可以补充惰性删除的不足,即使长时间没有客户端访问也能自动清理部分过期数据。

至于Redis的淘汰策略(Eviction Policy),它主要涉及当Redis实例的内存达到最大限制时如何选择删除无过期时间的键以释放内存空间,与过期键的删除机制不同。常见的淘汰策略有以下几种:

  1. LRU(Least Recently Used 最近最少使用):优先删除最近最少使用的键。
  2. LFU(Least Frequently Used 最少频率使用):优先删除使用频率最低的键。
  3. TTL(基于生存时间的淘汰):仅在设置了过期时间的数据上应用,实际上这并不算严格意义上的“淘汰”策略,而是结合了过期机制来自动回收内存。
  4. volatile-lru/volatile-lfu/volatile-random/volatile-ttl:这些是混合策略,仅对有过期时间设置的键采用LRU、LFU、随机或基于TTL的方式进行淘汰。

综上所述,惰性删除和定期删除是用于处理有过期时间设定的键的删除方式,而Redis的淘汰策略主要用于解决未设置过期时间的键在内存满载时的内存管理问题。

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

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

相关文章

SAR ADC学习笔记(4)

CDAC电容阵列 一、电容失配 二、电容失配对CDAC线性度的影响 1.电容失配对DNL的影响 2.电容失配对INL的影响 三、分段结构的CDAC 四、CDAC开关切换方案&#xff1a;传统开关切换策略 第一次比较阶段&#xff1a;如果VP(1)-VN(1)<0 第一次比较阶段&#xff1a;如果VP(1)-VN…

Gemini 初体验

1 使用体验 同样需要科学上网。速度很快&#xff0c;而且还不要钱&#xff0c;据说使用太多可能被限流。对于小语种翻译效果比 GPT-4 好&#xff0c;其它还没测试。可通过 ChatBox 界面调用&#xff0c;也可使用 Python 调用。 2 使用 ChatBox 方式调用 在 build with gemin…

Linux基础命令[12]-cat

文章目录 1. cat 命令说明2. cat 命令语法3. cat 命令示例3.1 不加参数3.2 -n&#xff08;显示行号&#xff09;3.3 -E&#xff08;行尾加 $&#xff09;3.4 -s&#xff08;多行并一行&#xff09; 4. 总结 1. cat 命令说明 cat&#xff1a;用来查看文件内容&#xff0c;因为 …

STM32 学习9 中断、外部中断及定时器中断

STM32 学习9 中断、外部中断及定时器中断 一、STM32中断介绍一、STM32中断介绍1. 什么是中断&#xff1f;2. 中断在嵌入式系统中的作用和重要性3. STM32中断的概述 4. 中断的优先级4.1 中断优先级级别4.2 中断优先级分类&#xff08;1&#xff09;硬件优先级&#xff08;2&…

Effective C++ 学习笔记 条款16 成对使用new和delete时要采取相同形式

以下动作有什么错&#xff1f; std::string *stringArray new std::string[100]; // ... delete stringArray;每件事看起来都井然有序&#xff0c;使用了new&#xff0c;也搭配了对应的delete。但还是有某样东西完全错误&#xff1a;你的程序行为未定义。至少&#xff0c;str…

聊一聊ThreadLocal的原理?

1.ThreadLocal创建方式 ThreadLocal<String> threadlocal1 new ThreadLocal(); ThreadLocal<String> threadlocal2 new ThreadLocal(); ThreadLocal<String> threadlocal3 new ThreadLocal(); 2.首先介绍一下&#xff0c;ThreadLocal的原理&#xff1a; 如…

buuctf EasyBypass --不会编程的崽

buu后边的题有些确实难&#xff0c;有些其实也没那么复杂。昨天做一道异或绕过的题&#xff0c;现在还没看懂QAQ 先来一题简单的吧。哎&#xff0c;随缘更新吧 <?phphighlight_file(__FILE__);$comm1 $_GET[comm1]; $comm2 $_GET[comm2];if(preg_match("/\|\|\\|\…

开源分子对接程序rDock使用方法(1)-Docking in 3 steps

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、Docking in 3 steps 标准对接rDock 的基本对接步骤及注意事项 二、 三步对接案例Step 1. 结构文件准备Step 2. 产生对接位点Step 3. 运行分子对接3.1 检查输入文件3.2 测试-只进行打分3.3 运行…

Finetuned Multimodal Language Models Are High-Quality Image-Text Data Filters

Finetuned Multimodal Language Models Are High-Quality Image-Text Data Filters 相关链接&#xff1a;arxiv 关键字&#xff1a;Multimodal Language Models、Image-Text Data Filtering、Fine-tuning、Quality Assessment Metrics、Data Quality 摘要&#xff1a; 我们提出…

算法Day05_707.设计链表

推荐阅读 算法day01_ 27. 移除元素、977.有序数组的平方 算法day02_209.长度最小的子数组 算法day03_ 59.螺旋矩阵II 算法Day04_203.移除链表元素 目录 推荐阅读707.设计链表题目思路解法单链表解法双链表解法 707.设计链表 题目 你可以选择使用单链表或者双链表&#xff0c;设…

【翻译】零信任架构准则(二)Know your architecture

了解你的业务架构 在零信任网络模型中&#xff0c;了解你的用户&#xff0c;设备&#xff0c;服务和数据比以往任何时候都更加重要。为了使零信任架构威力发挥到最大&#xff0c;你需要了解你的架构中的每一个组件。因此&#xff0c;正确了解你的资产是最关键的一步&#xff0…

RNN实现退位减法

文章目录 前言RNNRNN架构图前向传播公式反向传播算法 用RNN实现退位减法代码变量的对应关系 总结 前言 最近深入学习了一下RNN&#xff0c;即循环神经网络。RNN是一类比较基础的神经网络&#xff0c;本文使用的是最基础、最简单的循环神经网络的形式。LSTM也是一种常见的循环神…

Qt 简约美观的动画 摆钟风格 第十季

&#x1f60a; 今天给大家分享一个摆钟风格的加载动画 &#x1f60a; 效果如下: 最近工作忙起来了 , 后续再分享其他有趣的加载动画吧. 一共三个文件 , 可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <Q…

TCP收发——计算机网络——day02

今天主要讲了TCP的收发 TCP发端步骤 ①socket ②connect ③send ④closeTCP收端步骤 ①socket ②bind ③listen ④accept ⑤recv ⑥clise其函数主要有 connect int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);功能:发送链接请求参数:sockfd:套接…

【论文阅读】(2024.03.05-2024.03.15)论文阅读简单记录和汇总

(2024.03.05-2024.03.15)论文阅读简单记录和汇总 2024/03/05&#xff1a;随便简单写写&#xff0c;以后不会把太详细的记录在CSDN&#xff0c;有道的Markdown又感觉不好用。 目录 &#xff08;ICMM 2024&#xff09;Quality Scalable Video Coding Based on Neural Represent…

Mac电脑可以玩《幻兽帕鲁》吗? 幻兽帕鲁配置要求

Mac电脑可以玩《幻兽帕鲁》吗? 各位只有苹果电脑的玩家也不用担心&#xff0c;现在你也可以在Mac上玩《幻兽帕鲁》了!系统兼容神器CrossOver在第一时间就支持了《幻兽帕鲁》&#xff0c;不用虚拟机就能流畅运行。除了《幻兽帕鲁》外&#xff0c;CrossOver还支持《赛博朋克207…

HarmonyOS NEXT应用开发案例——阻塞事件冒泡

介绍 本示例主要介绍在点击事件中&#xff0c;子组件enabled属性设置为false的时候&#xff0c;如何解决点击子组件模块区域会触发父组件的点击事件问题&#xff1b;以及触摸事件中当子组件触发触摸事件的时候&#xff0c;父组件如果设置触摸事件的话&#xff0c;如何解决父组…

6个维度分析实时渲染和Webgl技术异同

在日常交流中&#xff0c;对Webgl技术熟悉的合作伙伴&#xff0c;在初次了解实时渲染技术时&#xff0c;都会问二者之间的异同。目前很多要求B/S架构的项目&#xff0c;很多在用webgl技术路线&#xff0c;而且这个方案在行业里比较普&#xff0c;业主方对这个也比较熟悉&#x…

重要通告 | 公司更名为“浙江实在智能科技有限公司”

更名公告 升级蜕变、砥砺前行 因业务快速发展和战略升级&#xff0c;经相关政府机构批准&#xff0c;自2024年3月1日起&#xff0c;原“杭州实在智能科技有限公司”正式更名为“浙江实在智能科技有限公司”。 更名后&#xff0c;公司统一社会信用代码不变&#xff0c;业务主体…

蓝桥杯备赛之二分专题

常用的算法二分模板 1. 在数组a[]中找大于等于x的第一个数的下标 //int ans lower_bound(a, a n, x) - a //相当于下方 int l 0, r n - 1; while(l < r) {int mid l r >> 1;if(a[mid] > x) r mid;else l mid 1; } cout << r;2. 在数组a[]中找大于…