Redis过期策略和内存淘汰策略

news2024/11/24 0:09:20

  过期策略

过期策略是指Redis设置过期时间且key已经到达过期时间时删除该key,一般有定期删除和惰性删除;

定期删除是指每隔固定时间扫描key,对已经过期的key做清除操作;

定期删除时并不会实际对key做全量扫描,而是随机抽取固定数量的设置了过期时间的key,如果样本中已经过期的key比例超过25%,则清除这些key并重新随机抽取,直到样本中过期的key的比例小于25%

惰性删除是指在key被访问的时候检查该key是否过期,如果过期则清除;

比较:定期删除浪费系统性能,但是保证预留足够的内存;

惰性删除不会浪费系统资源,但是可能造成过期key删除不及时,造成内存浪费;

内存淘汰策略

内存淘汰是指当内存使用量超过了配置的maxmemory时,自动触发对Redis内存的回收,无论key是否过期或者key是否设置了过期时间,跟具体的淘汰策略有关,只是为了释放内存保证Redis的正常运行;maxmemory-plolicy参数配置

常见的内存淘汰策略有:

  1. noeviction:不淘汰任何数据,内存不足时新增操作返回异常--默认
  2. allkeys-random:随机淘汰任意键值--淘汰多少
  3. allkeys-lru:所有键中最久未被使用的key
  4. volatile-LRU:淘汰设置过期时间的最久未被使用的key
  5. volatile-ttl:优先淘汰设置过期时间中更早过期的key
  6. volatile-random:随机淘汰设置了过期时间的key

Redis4中增加了两种:

  1. volatile-lfu:设置过期时间中最少使用次数的key
  2. allkeys-lfu:所有键中最少使用次数的key

对比:LRU保护最新写入的key;lfu可能淘汰掉新写入的key;

LFU实现:

 相同访问频次下比较访问时间,淘汰访问时间最久(lru即上次访问时间戳最小)的key;

LRU实现:

近似LRU--随机抽取(默认为5)个key,找出lru最小的key并淘汰;

 

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

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

相关文章

数字时代下CIO们如何做到业务增长和安全“双手抓”

7月22日,由福建信息主管(CIO)网主办的品牌企业业务增长与CIO进化之道暨福建CIO网20周年(厦门)产业数字化供需见面会在厦门顺利举办。 作为国内云原生安全领导厂商,安全狗也收到邀请出席此次活动。 厦门服云信息科技有限公司&…

Python实战案例:轻松采集微博评论,揭示网络舆论热点!

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 开发环境: python 3.8: 解释器 pycharm: 代码编辑器 模块使用: requests: 发送请求 parsel: 解析数据 jieba pandas stylecloud 第三方模块安装: win R 输入cmd 输入安装命令 pip install 模块名 (如果你…

Android平台如何实现第三方模块编码后(H.264/H.265/AAC/PCMA/PCMU)数据实时预览播放

技术诉求 我们在做GB28181设备对接模块和RTMP直播推送模块的时候,遇到这样的技术需求,设备(如执法记录仪)侧除了采集传统的摄像头外,还需要对接比如大疆等第三方数据源,确保按照GB28181规范和RTMP协议规范…

使用百度地图SDK计算距离

说明:通过百度地图提供的SDK,可以计算出两个地点之间的距离,另外还有行驶路线等等。本文介绍如果使用百度地图SDK,并用java代码实现。 申请 首先需要登录百度地图的官网,申请开发者认证,个人认证一般都很…

装饰模式-扩展系统功能

买了新车后,不少人会对车进行装饰,比如给车贴膜,喷上骚粉的漆等。某天,小李和小张都买了辆车,小李想给车贴膜,小张想给车先喷漆然后再贴膜。现在中的做法是,把车开到改装店,如果要喷…

统一观测丨使用 Prometheus 监控 Cassandra 数据库最佳实践

作者:元格 本篇内容主要包括四部分:Cassandra 概览介绍、常见关键指标解读、常见告警规则解读、如何通过 Prometheus 建立相应监控体系。 Cassandra 简介 Cassandra 是什么? Apache Cassandra 是一个开源、分布式、去中心化、弹性可伸缩、…

day44-Spring_AOP

0目录 1.2.3 1.Spring_AOP 实体类: Mapper接口: Service和实现类: 测试1: 运行后: 测试2:无此型号时 测试3:库存不足时 解决方案1:事务声明管理器 测试&#xff1a…

【从零开始学习JAVA | 第三十篇】方法引用

前言: 方法引用作为一个重要的知识点,虽然他使用起来很复杂,而且会降低代码的可读性,但是如果用好了方法引用,我们也会获得不错的效率,因此我们在今天将为大家讲解什么是方法引用。 方法引用:…

J-Flash合并多个bin文件

文章目录 1. 前言2. 下载 J-Flash 工具3. 合并3个bin文件3.1 Booloader.bin3.2 APP1.bin3.3 APP2.bin3.4 保存 → 导出合并bin文件3.5 未用到的区域会被填充为 FF 4. 欢迎纠正~ 1. 前言 下面介绍用J-Flash工具合并多个bin文件的方法 2. 下载 J-Flash 工具 在下载Jink驱动的…

excel 生成sql技巧

"update 表名 set 字段名"&A2&" where 字段名"&B2&";"

最小栈,设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

题记: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶…

交换机和终端设备的基本配置

1 IOS访问 1.1 操作系统 所有终端设备和网络设备都需要有操作系统 (OS)。如图所示,操作系统中直接与计算机硬件交互的部分称为内核。与应用程序和用户连接的部分则称为外壳。用户可以使用命令行界面 (CLI) 或图形用户界面 (GUI) 与外壳交互。 使用 CLI 时&#xf…

欧姆龙以太网模块连接MCGS步骤

你是否曾经遇到过这样的问题:在监控PLC数据时,触摸屏无法与PLC通讯,或者PLC的通讯口被占用了?今天,我要向大家介绍一款神奇的设备——捷米特JM-ETH-CP转以太网模块,它能够即插即用,不占用PLC通讯…

被吹爆的Wi-Fi 6,究竟强在哪?

被吹爆的Wi-Fi 6,究竟强在哪? 伴随IoT技术的成熟及发展,Wi-Fi标准也在不断迭代升级,然而就实际情况来说,依旧有不少人仍在使用旧标准,比如Wi-Fi 4、Wi-Fi 5。其实WiFi的每一次升级除了速率更高,…

SpringCloud+Nacos集成Seata-1.7.0分布式事务

Seata是一个比较成熟的分布式事务工具,非常好用,主流的的一套,网上大多都是1.4版本,以及不完整了,鄙人也是找了好久才找到有个1.7版本的详细教程(放在最后面了,毕竟是别人的技术,这里…

打造高效便捷的采购管理平台,提升企业采购效率

随着企业规模的扩大和供应链的日益复杂,传统的手工采购管理方式已经不能满足企业的需求。采购管理平台的出现为企业提供了一个集中、高效、便捷的采购管理工具。本文将重点探讨采购管理平台的意义与作用,并介绍如何打造一个高效便捷的采购管理平台。 一、…

【干货分享】如何恢复SOLIDWORKS 零件、装配体和工程图模板?

当我们卸载了SOLIDWORKS或者是购买了一台新笔记本电脑或是丢失了一直在使用的模板时,我们可以通过打开过去的零件、装配体和工程图文件来恢复 SOLIDWORKS 模板。 ▷ 零件模板 打开包含所需自定义属性的上一个部件。 保存零件的副本以避免对原始文件进行意外更改。…

机器学习深度学习——线性回归的从零开始实现

虽然现在的深度学习框架几乎可以自动化实现下面的工作,但从零开始实现可以更了解工作原理,方便我们自定义模型、自定义层或自定义损失函数。 import random import torch from d2l import torch as d2l线性回归的从零开始实现 生成数据集读取数据集初始…

【技术】国标GB28181视频监控平台EasyGBS视无法播放,抓包返回ICMP

视频流媒体安防监控国标GB28181平台EasyGBS视频能力丰富,部署灵活,既能作为业务平台使用,也能作为安防监控视频能力层被业务管理平台调用。国标GB28181视频EasyGBS平台可提供流媒体接入、处理、转发等服务,支持内网、公网的安防视…

Ansys Speos | Presets 适合用户的预定义参数集

概述 Speos Presets 参数预置功能允许创建预定义的参数集,并将它们应用于新的或现有的 Speos,从任何 Speos 对象创建预设,例如光源,传感器,材料,仿真等,通过一个*.Preset 的文件定对仿真类型的配…