Redis 的内存回收策略

Redis的内存回收策略用于处理过期数据和内存溢出情况,确保系统稳定性和性能。作为一个高性能的键值存储系统,它通过内存回收策略来维护内存的高效使用

主要包括过期删除策略和内存淘汰策略

过期删除策略

Redis的过期删除策略是通过设置键的过期时间来实现的。在Redis中,每个键都有一个关联的过期时间字段,用于表示该键的过期时间。

当一个键被创建时,可以通过设置其过期时间来指定其在何时自动删除。过期时间可以是一个绝对时间戳(Unix时间戳),也可以是相对于当前时间的秒数。

以下是一些常见的设置键过期时间的命令:

  1. EXPIRE key seconds:将键key的过期时间设置为seconds秒后。
  2. SETEX key seconds value:将键key的值设置为value,并设置其过期时间为seconds秒后。
  3. PEXPIRE key milliseconds:将键key的过期时间设置为milliseconds毫秒后。
  4. PSETEX key milliseconds value:将键key的值设置为value,并设置其过期时间为milliseconds毫秒后。
  5. PERSIST key:移除键key的过期时间,使其永久保存。
  • 定时删除:为设置过期时间的键创建定时器,到期时立即删除。
  • 惰性删除:在访问键时检查是否过期,如果过期则删除。
  • 定期删除:Redis会周期性地对数据库进行检查并删除找到的过期键。

内存淘汰策略(maxmemory-policy):

当Redis使用的内存达到maxmemory限制时,为了防止内存使用过度,需要有一种机制来决定哪些数据应当被优先淘汰以释放内存空间。Redis提供了多种内存淘汰策略供用户选择,这些策略根据不同的场景和需求进行设计,具体包括:

  1. noeviction(默认:不进行数据淘汰。当内存不足以容纳新写入数据时,新写入操作会返回错误。
  2. allkeys-lru:从所有键中选择最少使用的键淘汰。这个策略会通过LRU(Least Recently Used)算法来确定要淘汰的数据。
  3. volatile-lru:只从设置了过期时间的键中选择最少使用的键淘汰,也是基于LRU算法。
  4. allkeys-random:随机从所有键中选择数据淘汰。
  5. volatile-random:随机从设置了过期时间的键中选择数据淘汰。
  6. volatile-ttl:选择那些即将过期的键进行淘汰。

此外,在Redis 4.0版本之后,新增了两种基于LFU(Least Frequently Used)算法的淘汰策略:

  1. volatile-lfu:根据访问频率从设置了过期时间的键中选择最不常用的键淘汰。
  2. allkeys-lfu:根据访问频率从所有键中选择最不常用的键淘汰。

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

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

相关文章

yarn的安装以及使用案例

作为资深前端专家,对于各种前端工具和技术有着深入的了解和实践经验,其中Yarn就是一个重要的依赖管理工具。以下是对Yarn的安装以及使用案例的详细说明: 一、Yarn的安装 Yarn的安装相对简单,通常可以通过npm(Node Pa…

Redis的持久化机制是怎样的?

Redis提供了两种持久化的机制,分别的RDB和AOF。 RDB RDB是将Redis的内存中的数据(以快照的形式)定期保存到磁盘上,以防治数据在Redis进程异常退出或服务器断电等情况下丢失。 RDB的优点是:快照文件小、恢复速度快&am…

Maven package classifier测试

package package阶段会生成一个jar文件,包含了main文件夹下编译后的资源。可作为其他项目的依赖引用。 classifier install后,在仓库中存放的artifact的最终文件,即将package最终文件存入仓库,若在打包时需要加以定制&#xff…

双目的Occupancy——Occdepth

文章目录 论文链接:[https://arxiv.org/pdf/2302.13540.pdf](https://arxiv.org/pdf/2302.13540.pdf)、代码链接: [https://github.com/megvii-research/OccDepth](https://github.com/megvii-research/OccDepth) 网络结构:Stereo moudule 通…

政策导向与行业发展

方向一:政策导向与行业发展 政府工作报告中对计算机行业的政策导向主要包括促进信息技术与实体经济深度融合、推动数字化转型升级、加强网络安全和数据保护等。这些政策的出台将直接影响着计算机行业的发展方向和企业的经营策略。 首先,政府将进一步推…

C 指向数组的指针

组名本身是一个常量指针,意味着它的值是不能被改变的,一旦确定,就不能再指向其他地方。 因此,在下面的声明中: double balance[50];balance 是一个指向 &balance[0] 的指针,即数组 balance 的第一个元…

Orcale一些面试题20道

1. 下面哪个用户不是ORACLE缺省安装后就存在的用户( A ) A . SYSDBA B. SYSTE C. SCOTT D. SYS 2、带有(B)字句的SELECT语句可以在表的一行或多行放置排他锁。 A .? FOR INSERT B.? FOR UPDATE C.? FOR DELETE D.? FOR REFRESH 3. 在Oracle中&am…

【线段树二分】第十三届蓝桥杯省赛C++ A组/研究生组 Python 研究生组《扫描游戏》(C++)

【题目描述】 有一根围绕原点 O 顺时针旋转的棒 OA,初始时指向正上方(Y 轴正向)。 在平面中有若干物件,第 i 个物件的坐标为(,),价值为 。 当棒扫到某个物件时,棒的长度会瞬间增长 &#xff…

解决: MAC ERROR [internal] load metadata for docker.io/library/openjdk:17

错误信息: ERROR [internal] load metadata for docker.io/library/openjdk:17 ERROR: failed to solve: openjdk:17: error getting credentials - err: exit status 1, out: 解决方法: running this command rm ~/.docker/config.json before …

pycharm使用远程服务器的jupyter环境

1、确保服务器上安装了jupyter,如果没有,执行下面命令安装 pip install jupyter2、启动jupyter notebook服务 jupyter notebook --no-browser --port8888 --ip0.0.0.0 --allow-root表明在服务器的8888 端口上启动 Jupyter Notebook,并允许从任何 IP 地…

【NC18386】字符串

题目 字符串 题目又叫字符串,但是这道题是真正的关于字符串的题 思路 这道题可行的我能想出来的思路有两个,一个是二分,先猜测一个答案,然后验证这个答案,但是由于这种方法时间复杂度不如另一种方法:双指…

【React】React表单组件

在React中,表单组件是用来处理用户输入的重要部分。React提供了多种方式来处理表单,包括受控组件(Controlled Components)和非受控组件(Uncontrolled Components)。同时,表单组件也涉及到一些交…

第十届 “MathorCup“- B题:养老服务床位需求预测与运营模式研究

目录 摘 要 一、问题重述 二、问题分析 三、模型假设 四、符号说明

基于ACO蚁群优化的UAV最优巡检路线规划算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 蚂蚁移动和信息素更新 4.2 整体优化过程 5.完整程序 1.程序功能描述 基于ACO蚁群优化法的UAV最优巡检路线规划。蚁群优化算法源于对自然界蚂蚁寻找食物路径行为的模拟。在无人机巡检路…

【Pytorch】利用PyTorch实现图像识别

1. 背景介绍 图像识别是计算机视觉领域的一个重要分支,它涉及到让计算机能够像人类一样理解和解释图像中的内容。随着深度学习技术的快速发展,基于卷积神经网络(CNN)的图像识别方法已经取得了显著的成果,并在许多实际…

哪些属于“法律、行政法规另有规定,依照其规定进行评估/批准”的情况?

哪些属于“法律、行政法规另有规定,依照其规定进行评估/批准”的情况? 除《网络安全法》《数据安全法》和《个人信息保护法》确立的数据和网络安全整体体系外,企业还应当考虑其他相关法律法规的要求。 例如: ✮如根据《中华人民…

Python(Socket) +Unreal(HTTP)

Python(Socket) Unreal(HTTP) python(Socket):UE:Post请求并发送本机IP 上班咯,好久没记笔记了。。。 局域网 UE的apk,请求Python的Socket 跑起Socket ,UE发 …

vue 文件预览(docx、.xlsx、pdf)

1.ifream <iframe src"" ></iframe> 注: src里面是文件地址 2.vue-office 支持vue2和vue3提供docx、.xlsx、pdf多种文档的在线预览方案 2.1安装 #docx文档预览组件 npm install vue-office/docx vue-demi#excel文档预览组件 npm install vue-office…

科技引领趋势:3D元宇宙展厅在各行业中的应用及其未来展望

随着技术的不断进步&#xff0c;3D元宇宙展厅正逐渐成为各行各业展示产品的新选择。相较于传统的线下展厅&#xff0c;3D元宇宙展厅以其独特的优势&#xff0c;为产品展示和品牌推广提供了全新的可能性。 一、虚拟与现实的完美融合 3D元宇宙展厅是指在虚拟世界中构建的三维展览…

设计模式之抽象工厂模式精讲

概念&#xff1a;为创建一组相关或相互依赖的对象提供一个接口&#xff0c;而且无须指定他们的具体类。 抽象工厂模式是工厂方法模式的升级版本。在存在多个业务品种或分类时&#xff0c;抽象工厂模式是一种更好的解决方式。 抽象工厂模式的UML类图如下&#xff1a; 可以看…