Redis-数据过期策略

在这里插入图片描述

文章目录

    • Redis数据持久化策略的作用是什么?
    • Redis的数据过期策略有哪些?
      • 惰性删除
      • 定期删除

更多相关内容可查看

Redis数据持久化策略的作用是什么?

Redis数据过期策略是指在Redis中设置数据的过期时间,并在数据过期时自动从数据库中删除该数据的一种机制。这种机制的作用主要体现在以下几个方面:

  • 缓存管理:Redis经常被用作缓存系统,用于存储频繁访问但不常变化的数据,如页面缓存、会话数据等。通过设置数据过期时间,可以自动清理过期的缓存数据,避免缓存数据占用过多内存空间,保持系统的性能稳定。
  • 节省内存空间:Redis是一个内存数据库,内存资源有限。通过设置数据的过期时间,可以自动释放过期的数据占用的内存空间,保证内存资源的有效利用。
  • 防止数据过期:在一些场景中,数据可能会因为不再被访问而过期,但在过期前又被重新访问到。为了避免这种情况,Redis提供了惰性删除和定期删除两种过期策略。惰性删除会在获取数据时检查数据是否过期,定期删除则是通过定时任务扫描数据库,删除过期数据。这样可以保证数据在被访问时不会过期。
  • 控制数据生命周期:通过设置数据的过期时间,可以控制数据的生命周期,使数据在一定时间内有效,从而管理数据的时效性和有效性。
  • 降低系统复杂度:使用数据过期策略可以简化系统逻辑,避免手动管理数据的过期与清理,减少开发和维护成本。

Redis的数据过期策略有哪些?

惰性删除

惰性删除 :只会在取出 key 的时候才对数据进行过期检查。这样对 CPU 最友好,但是可能会造成太多过期 key 没有被删除。
数据到达过期时间,不做处理。等下次访问该数据时,我们需要判断
如果未过期,返回数据
发现已过期,删除,返回nil

定期删除

定期删除 : 每隔一段时间抽取一批 key 执行删除过期 key 操作。并且,Redis 底层会通过限制删除操作执行的时长和频率来减少删除操作对 CPU 时间的影响。
默认情况下 Redis 定期检查的频率是每秒扫描 10 次,用于定期清除过期键。当然此值还可以通过配置文件进行设置,在 redis.conf 中修改配置“hz”即可,默认的值为hz 10
定期删除的扫描并不是遍历所有的键值对,这样的话比较费时且太消耗系统资源。Redis 服务器采用的是随机抽取形式,每次从过期字典中,取出 20 个键进行过期检测,过期字典中存储的是所有设置了过期时间的键值对。如果这批随机检查的数据中有 25% 的比例过期,那么会再抽取 20 个随机键值进行检测和删除,并且会循环执行这个流程,直到抽取的这批数据中过期键值小于 25%,此次检测才算完成
Redis 服务器为了保证过期删除策略不会导致线程卡死,会给过期扫描增加了最大执行时间为 25ms
注:定期删除对内存更加友好,惰性删除对 CPU 更加友好。两者各有千秋,所以 Redis 采用的是 定期删除+惰性删除

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

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

相关文章

《安富莱嵌入式周报》第336期:开源计算器,交流欧姆表,高性能开源BLDC控制器,Matlab2024a,操作系统漏洞排名,微软开源MS-DOS V4.0

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 本周更新一期视频教程: BSP视频教程第30期:UDS ISO14229统一诊断服务CAN总线专题,常…

【SRC实战】无限获取优惠码

挖个洞先 https://mp.weixin.qq.com/s/HgMK4S8275VvFVbnSp6Qsw “ 以下漏洞均为实验靶场,如有雷同,纯属巧合 ” 01 — 漏洞证明 “ 获取优惠码有次数限制的情况下,如何绕过?” 1、新用户专属福利,免费领100元优惠…

聚观早报 | 小米与京东达成合作;比亚迪销量全球第一

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 5月14日消息 小米与京东达成合作 比亚迪销量全球第一 vivo X100s关键参数曝光 小鹏汽车进军澳大利亚市场 腾讯Q…

(接上一篇linux rocky 搭建DNS高阶版)实现不同网段访问解析不同的服务器并加域

上一篇链接:linux rocky 搭建DNS服务和禁止AD域控DNS,做到独立DNS并加域-CSDN博客文章浏览阅读417次,点赞13次,收藏7次。使用linux rocky 搭建DNS服务,用于独立AD域控DNS存在,并且实现加域。https://blog.c…

vue3修改eldialog弹窗css不生效

问题:子组件中的eldialog没有父标签 直接使用如下是不生效的 .el-dialog{ top: 10%; } 解决: 加一个父标签 使用deep深度查询 .dialogClass :deep(.el-dialog) { top: 10%; } 就可以修改了

「JavaEE」多线程案例分析2:实现定时器

🎇个人主页:Ice_Sugar_7 🎇所属专栏:JavaEE 🎇欢迎点赞收藏加关注哦! 实现定时器 🍉简介🍉模拟实现定时器 🍉简介 定时器类似一个闹钟,时间到了之后就会执行…

java 解决跨域时遇到问题,怎么来做一个跨域环境

今天遇到一个问题: 关于#java#的问题:java 解决跨域时遇到问题:为什么跨域访问时配置的CorsFilter没有进入?直接访问请求地址时进入了配置的CorsFilter 由于没有实际的跨域环境,因此打算在本机建一个跨域环境&#xff…

Java 实现Mybatis plus 批量删除

数据库实体字段并不映射的情况&#xff0c;直接请求体集合接收。 PostMapping("/removeIdsInfo")public R<Void> removeIdsInfo(RequestBody List<Integer> ids) {return exStudentService.removeIdsInfo(ids);} /**** 学生模块根据集合id 批量删除数据*…

深度解析Nginx:高性能Web服务器的奥秘(下)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《洞察之眼&#xff1a;ELK监控与可视化》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、Nginx概述 二、Nginx核心功能 1、URL重写与重…

Springboot整合 Spring Cloud Gateway

1.Gateway介绍 1.是spring cloud官方推出的响应式的API网关框架&#xff0c;旨在为微服务架构提供一种简单有效的API路由的管理方式&#xff0c;并基于Filter的方式提供网关的基本功能&#xff0c;例如&#xff1a;安全认证&#xff0c;监控&#xff0c;限流等等。 2.功能特征…

为什么很多计算机专业的同学毕业即失业❓

✅大部分计算机专业毕业生在就业时遇到困难&#xff0c;原因往往是多方面的&#xff0c;并非普遍情况&#xff0c;主要包括以下几点&#xff1a; 1.技能不匹配&#xff1a;学校所学知识可能与实际工作需求有一定差距&#xff0c;比如缺乏特定编程语言的深入掌握或实际项目经验。…

基于MetaGPT的LLM Agent学习实战(一)

前言 我最近一直在做基于AI Agent 的个人项目&#xff0c; 因为工作加班较多&#xff0c;设计思考时间不足&#xff0c;这里借着Datawhale的开源学习课程《MetaGPT智能体理论与实战》课程&#xff0c;来完善自己的思路&#xff0c;抛砖引玉&#xff0c;和各位开发者一起学习&am…