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

Redis 内存淘汰与过期策略

引言Redis 作为内存数据库内存资源有限必须妥善处理内存占用问题。本文梳理两种核心机制淘汰策略决定内存达到上限时如何移除数据涵盖 noeviction、LRU、LFU 等多种算法及其实现细节过期策略惰性删除 定期删除负责及时清理已过期的键并说明如何避免读到过期数据。掌握这些机制有助于合理配置 Redis 实例平衡内存效率与数据可用性。Redis淘汰策略当 Redis 的内存使用量达到配置maxmemory的上限时如何决定哪些数据应该被删除以释放内存。淘汰策略是在全局范围内应用的它适用于 Redis 实例中的所有键。noeviction一旦缓存被写满了再有写请求来时Redis 不再提供服务而是直接返回错误。volatile-ttl会针对设置了过期时间的键值对根据过期时间的先后进行删除越早过期的越先被删除。volatile-random在设置了过期时间的键值对中进行随机删除。volatile-lru会使用 LRU 算法筛选设置了过期时间的键值对默认策略。volatile-lfu会使用 LFU 算法选择设置了过期时间的键值对。allkeys-random从所有键值对中随机选择并删除数据。allkeys-lru使用 LRU 算法在所有数据中进行筛选。allkeys-lfu使用 LFU 算法在所有数据中进行筛选。LRU算法实现最近最少使用算法。比较访问时间淘汰最近一次访问时间小的数据。Redis的LRU实现RedisObject的lru字段记录数据最近一次访问时间。第一次淘汰数据时根据配置maxmemory-samples选择出来N个数据作为候选集合把lru字段值最小的数据淘汰。再次淘汰数据时能进入候选集合的数据的 lru 字段值必须小于候选集合中最小的 lru 值当候选数据集中的数据个数达到了配置值时把候选数据集中 lru 字段值最小的数据淘汰出去。LFU算法实现最不经常使用算法。先比较访问次数再比较访问时间。相对LRU可以减少全表扫描造成的缓存污染需要淘汰的数据无法被淘汰。淘汰时先根据数据 lru 字段的后 8bit 选择访问次数最少的数据进行淘汰。当访问次数相同时再根据 lru 字段的前 16bit 值大小选择访问时间最久远的数据进行淘汰。Redis的LFU实现RedisObject中lru字段拆成两部分第一部分前16bit 存储访问时间第二部分后8bit最大255 存储访问次数。当前的访问次数 * lfu_log_factor建议设置为10 1再取倒数将此数值与01随机数比较如果大于随机数则访问次数加1。衰减策略如果lfu_decay_time为1N分钟内没有被访问访问次数 - N如果lfu_decay_time为2N分钟内没有被访问访问次数 - N/2。第一次淘汰数据时根据配置maxmemory-samples选择出来N个数据作为候选集合把lru字段值最小的数据淘汰。再次淘汰数据时能进入候选集合的数据的 lru 字段值必须小于候选集合中最小的 lru 值当候选数据集中的数据个数达到了配置值时把候选数据集中 lru 字段值最小的数据淘汰出去。Redis过期策略当Redis中的键在设定的过期时间到达后如何自动删除。惰性删除当一个数据的过期时间到了以后并不会立即删除数据而是等到再有请求来读写这个数据时对数据进行检查如果发现数据已经过期了再删除这个数据。定期删除Redis 每隔一段时间默认 100ms就会随机选出一定数量的数据检查它们是否过期并把其中过期的数据删除这样就可以及时释放一些内存。主动淘汰删除通过淘汰策略内存达到 maxmemory 限制时根据淘汰策略进行删除。如何避免读到过期数据Redis 3.2 之前的版本从库在服务读请求时并不会判断数据是否过期而是会返回过期数据。在 3.2 版本后Redis 做了改进如果读取的数据已经过期了从库虽然不会删除但是会返回空值这就避免了客户端读到过期数据。使用EXPIRE设置key存活时间为多少秒 和 PEXPIRE设置key存活时间为多少毫秒命令设置过期时间时主从库之间的同步延迟会导致主从库的过期时间不一样通过从库读取时会读到过期数据。建议使用EXPIREAT和PEXPIREAT命令指定过期时间。感谢您的阅读如果文章中有任何问题或不足之处欢迎及时指出您的反馈将帮助我不断改进与完善。期待与您共同探讨技术共同进步

相关文章:

Redis 内存淘汰与过期策略

引言Redis 作为内存数据库,内存资源有限,必须妥善处理内存占用问题。本文梳理两种核心机制:淘汰策略决定内存达到上限时如何移除数据,涵盖 noeviction、LRU、LFU 等多种算法及其实现细节;过期策略(惰性删除…...

高纯水系统如何保障锂电池生产良率?

在锂电池制造过程中,生产用水纯度直接关联产品性能与安全。随着新能源汽车与储能产业快速发展,行业对电池一致性与稳定性的要求持续提升,超纯水已成为核心制程环节的关键辅材。一、锂电池生产用水标准 锂电池生产涉及正负材料制备、浆料调配、…...

[MediaForge] 音频技术深度解析(五):常见问题与快速解决

目录 问题排查方法论 音频采集常见问题 音频重采样常见问题 音频编码常见问题 音频封装常见问题 端到端完整流程问题 快速定位工具集 AI 辅助排查指南 1. 问题排查方法论 1.1 通用排查流程 ┌───────────────────────────────────────…...

突破性分子动力学自由能计算工具:gmx_MMPBSA技术深度解析与实战指南

突破性分子动力学自由能计算工具:gmx_MMPBSA技术深度解析与实战指南 【免费下载链接】gmx_MMPBSA gmx_MMPBSA is a new tool based on AMBERs MMPBSA.py aiming to perform end-state free energy calculations with GROMACS files. 项目地址: https://gitcode.co…...

3分钟掌握绝地求生压枪黑科技:罗技鼠标宏终极指南

3分钟掌握绝地求生压枪黑科技:罗技鼠标宏终极指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中AKM的后坐力而…...

2026海雅达HDT500手持终端PDA“12米远距扫描”应用案例:造纸厂原纸立库高层纸卷条码采集应用

标准工业原纸卷重达2吨、宽幅近2.8米,在12-15米高的原纸仓库中堆垛高达8-10米。高空扫码怎么破? 传统PDA扫码距离仅1米,难道必须冒生命危险爬上纸堆?海雅达HDT500的12米扫描头如何实现“降维打击”? 如何利用海雅达H…...

通过 C# 将 RTF 格式转换为 Word 文档

在 .NET 项目中处理文档格式转换时,RTF 转 Word 是一个常见的需求。RTF(Rich Text Format)作为一种跨平台的文档格式,常被用作中间载体,而最终交付时往往需要转换为更通用的 Word 格式(.doc 或 .docx&#…...

水质溶解氧在线监测仪:实时监测与数据记录解析

水质溶解氧在线监测仪是一款专注于水体溶解氧与水温监测的专业设备,可快速记录水体关键参数,同时支持扩展多种水质参数传感器,能根据不同使用需求灵活组合配置。设备内置存储功能,可留存历史监测数据与报警记录,还支持…...

家用混动SUV舒适度技术科普入门:从实测看核心技术要点

在家用混动SUV的日常使用中,接送孩子上下学、家庭短途出行是最高频的场景,而“舒适度”并非单纯的主观感受,而是一套涵盖空间设计、座椅工程、材质工艺、座舱适配及动力平顺性的综合技术体系。对于有儿童乘坐需求的家庭而言,舒适度…...

ORA-12518:Oracle 监听程序无法分发客户端连接原因及解决方法

本文主要讲解ORA-12518:Oracle监听程序无法分发客户端连接的原因分析及解决方法。问题描述数据中台的同步任务有时会报错如下:ORA-12518, TNS:listener could not hand off client connection。意即Oracle监听程序无法分发客户端连接,原因分析只是有时候…...

判断当前页面是否以「添加到主屏幕」应用形态启动 (快捷方式\APP、套壳包等启动)

这里写自定义目录标题判断当前页面是否以「添加到主屏幕」应用形态启动判断当前页面是否以「添加到主屏幕」应用形态启动 /*** 判断当前页面是否以「添加到主屏幕」应用形态启动* - iOS Safari: navigator.standalone* - 标准 PWA: display-mode 为 standalone/fullscreen/min…...

偏迹(Partial Trace)的定义和数学物理意义

我们将通过多个计算示例来掌握偏迹(Partial Trace)。1. 偏迹的定义1.1 动机在量子力学中,复合系统 的态用密度矩阵 ​ 描述。那么,当我们只关心子系统 时,需要忽略掉其中 的状态,这里通过对子系统 求平…...

定时任务XXL-Job

目录为什么是XXL-Job?SpringBoot 整合XXL-Job1)环境准备2)SpringBoot 项目依赖3)application.yml 配置4)XXL-Job 配置类5)定时任务业务类(核心代码)6)调度中心Web可视化界…...

《C 头文件》

《C 头文件》 引言 C 头文件是 C 语言编程中不可或缺的一部分。它们包含了 C 语言标准库中的各种函数、宏定义和类型定义,为程序员提供了丰富的编程工具。本文将详细介绍 C 头文件的作用、分类、常用头文件及其在编程中的应用。 一、C 头文件的作用 C 头文件的主要作用有以…...

ParquetViewer:Windows平台最友好的Parquet文件查看与查询工具

ParquetViewer:Windows平台最友好的Parquet文件查看与查询工具 【免费下载链接】ParquetViewer Simple Windows desktop application for viewing & querying Apache Parquet files 项目地址: https://gitcode.com/gh_mirrors/pa/ParquetViewer 还在为Wi…...

终极删除命令(强制解锁 + 删文件 + 删目录)

🔥 终极删除命令(强制解锁 删文件 删目录)前言 二、使用步骤 // “E:\Documents\HBuilderProjects\个人简历\tmpim” 是想要删除的文件夹 ① 解锁所有被占用的文件(解决 “正在使用”) cmd taskkill /f /im HBuilde…...

Health Agent开放平台:企业级健康医疗AI Agent基础设施

在人工智能加速渗透各行各业的今天,健康医疗领域正迎来由智能体驱动的深刻变革。面向专业场景的健康医疗AI Agent,正成为企业提升服务效能、优化运营流程、构建差异化竞争力的核心引擎。而集专业性、灵活性与可扩展性于一体的企业级智能体平台&#xff0…...

性能测试专家养成记:工具、思维、实战全解析

在软件质量保障体系中,性能测试正从一个可选的“加分项”演变为关乎用户体验与业务存续的“必答题”。对于广大软件测试从业者而言,成长为一名性能测试专家,不仅意味着技术深度的拓展,更代表着从“验证功能”到“保障体验”乃至“…...

CnOpenData 沪市IPO发行文件-B来源

IPO(Initial Public Offing),即首次公开募股,是指一家企业(发行人)第一次将它的股份向公众出售。资本市场是现代金融体系的核心,是企业最高效的融资渠道和最强大的资本运作平台,IPO作为公司登陆资本市场的唯一路径,将使…...

破局与重塑:大模型浪潮下机器学习工程师的生存指南

十字路口的困惑与机遇当大语言模型(LLM)与生成式AI(GenAI)以前所未有的速度席卷全球,身处技术浪潮中心的机器学习工程师们,正经历着一场深刻的职业震荡。曾经引以为傲的XGBoost、卷积神经网络(C…...

linux下的pwm子系统

概念:PWM的概念就不多说了&#xff0c;pwm子系统如下:设备树:rk3568设备树pwm控制器里面已经配置了时钟&#xff0c;所以只需要使能节点就好了/* 使能 PWM12 节点 配置使用指定的引脚 状态设置为正常工作 */&pwm12 {status "okay";pinctrl-0 <&pwm12m1_…...

政务行业高准确率、可控、符合规范的数据库审计与监测实践方案

一、概要&#xff1a;以高精准风险监测与全链路审计&#xff0c;构筑政务数据安全可控防线在国家数字化治理体系纵深推进的背景下&#xff0c;政务数据已成为驱动政府决策、公共服务与社会管理的关键生产要素。然而&#xff0c;随着政务云、数据共享交换平台的大规模建设&#…...

GRS认证实操干货:TC交易证书全流程解析(源头供应商必看)

一、前言&#xff1a;GRS证书与TC的核心关联&#xff08;新手必懂&#xff09;在再生行业GRS认证体系中&#xff0c;多数源头供应商存在一个核心认知误区&#xff1a;认为拿到GRS范围证书&#xff08;SC&#xff09;就完成了合规闭环&#xff0c;实则不然。GRS证书&#xff08;…...

安全运维体系建设思路

安全运维体系建设思路 注意&#xff1a;后续技术分享&#xff0c;第一时间更新&#xff0c;以及更多更及时的技术资讯和学习技术资料&#xff0c;将在公众号CTO Plus发布&#xff0c;欢迎关注公众号&#xff1a;CTO Plus 关于Articulate“做一个知识和技术的搬运工。做一个终身…...

第4章 Mosquitto命令行工具快速上手

第4章 Mosquitto命令行工具快速上手 4.1 命令行工具概览 #mermaid-svg-J8aIvd39QR9TuYWA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-…...

PyTorch 2.8镜像效果实测:RTX 4090D上Qwen2-VL图文理解准确率对比报告

PyTorch 2.8镜像效果实测&#xff1a;RTX 4090D上Qwen2-VL图文理解准确率对比报告 1. 测试环境与配置 1.1 硬件与系统配置 本次测试使用的硬件配置为&#xff1a; GPU&#xff1a;NVIDIA RTX 4090D 24GB显存CPU&#xff1a;10核心处理器内存&#xff1a;120GB存储&#xff…...

别再死磕 SEO 了,2026 年是 GEO 的天下:如何让大模型在搜索结果里“翻你的牌子”?

1. 为什么 2026 年你的 SEO 流量断崖式下跌&#xff1f;如果你最近发现网站的 GA&#xff08;Google Analytics&#xff09;或百度统计里的自然流量在掉&#xff0c;别急着骂运营。看看现在的搜索习惯&#xff1a;用户不再去翻第二页的蓝色链接&#xff0c;而是直接在 Perplexi…...

谐波注入抑制永磁同步电机转矩脉动的复现研究

提取特定谐波注入抑制永磁同步电机转矩脉动【复现】 [1]复现文献&#xff1a;《用谐波注入抑制永磁同步电机转矩脉动_廖勇》 [2]控制思路&#xff1a;以抑制电机电流中较大的 5、7 次谐波分量为目的&#xff0c;实时提取谐波电流&#xff0c;注入谐波电压来抵消电机运行时电机电…...

智能车竞赛备赛利器:用快马AI快速搭建算法仿真原型

智能车竞赛备赛利器&#xff1a;用快马AI快速搭建算法仿真原型 参加智能车竞赛的同学都知道&#xff0c;算法调试和硬件交互是最耗时的环节之一。传统开发流程中&#xff0c;光是搭建仿真环境就要花上好几天&#xff0c;更别说反复调试参数了。最近我发现InsCode(快马)平台能帮…...

2025最权威的降AI率助手推荐榜单

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 背景是人工智能生成内容越来越普及&#xff0c;降AIGC工具因此出现&#xff0c;目的是降低文…...