redis的key超时策略和key淘汰机制(面试题详解)

在这里插入图片描述

ChatGPT给出的回答:

Redis中的Key超时策略和Key淘汰机制是为了有效管理内存和控制数据的生命周期。

  1. Key超时策略:Redis可以为每个Key设置过期时间,一旦Key过期,它将自动从Redis中删除。可以使用EXPIRE命令为Key设置过期时间,例如可以使用EXPIRE key seconds命令设置某个Key在指定的秒数后过期。超时策略可以用于缓存失效、会话管理等场景,使得Redis可以自动清理不再使用的数据,释放内存空间。

  2. Key淘汰机制:当Redis的内存达到一定限制时,需要使用淘汰机制来决定哪些Key应该被删除以释放内存。Redis提供了不同的Key淘汰策略:

    • LRU(Least Recently Used):最近最少使用的Key被优先淘汰。
    • LFU(Least Frequently Used):最不经常使用的Key被优先淘汰。
    • Random(随机):随机选择Key进行淘汰。
    • TTL(Time to Live):优先淘汰设置了过期时间且已过期的Key。
      .

    淘汰机制可以通过配置参数来设置,例如可以使用maxmemory参数来限制Redis使用的最大内存,使用maxmemory-policy参数来指定淘汰策略。

    通过合理设置超时策略和淘汰机制,可以在Redis中有效管理内存,控制存储的数据,确保系统的性能和可用性。

详解

Redis过期策略
  • Redis在设置缓存数据时设置了过期时间,到了过期时间数据就失效了,但数据不会自动删除,那Redis是怎么处理这些失效的数据的呢?这个处理逻辑称之为过期策略。
  • Redis使用是惰性删除定期删除两种策略。

Redis的key过期策略
  • 被动方式 - 惰性删除
  • 主动方式 - 定期删除
  • 定时删除(十分消耗CPU资源,所以不用)

惰性删除

惰性删除不是去主动删除,而是在你要获取某个key 的时候,redis会先去检测一下这个key是否已经过期,如果没有过期则返回给你,如果已经过期了,则删除,返回null。

定期删除
  • Redis 默认每秒进行 10 次过期扫描,而是采用了一种简单的贪心策略:

  • 他会去遍历16个库,遍历每一个库,对这个库进行抽样,抽样之后,判断抽样出来的key,是否超过1/4的key是否处于过期状态,如果说,这些抽样出来的key里边的没有超过1/4的key过期,此时他先清理完抽样出来过期的数据之后,再去遍历下一个库

  • 如果说超过了1/4 的key过期了,再次去遍历这个库,再去取判断抽取出来是否超过1/4过期,如此循环。有一些默认的参数,规定说,遍历一个库的时间,最多不能超过多少,遍历所有库的时间最多不能超过多少。定期删除里面的参数都是算法决定的,参数可自己设置。

定时删除

在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作。


Redis淘汰机制

是指Redis的内存占用过多,达到maxmemory 之后,Redis就会采用一定的策略,淘汰掉一部分数据。

Redis6种淘汰机制

1、noeviction:当内存不足以容纳新写入数据时,新写入操作会报错(一般没人用,但是默认是使用这个策略)
2、allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key(最常用)
3、allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key (一般没人用)
4、volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key(一般不太合适)
5、volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个
6、key volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除

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

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

相关文章

【自然语言处理】理解词向量、CBOW与Skip-Gram模型

文章目录 一、词向量基础知识1.1 One-hot表示1.2 Distributed表示 二、word2vec基础知识2.1 CBOW和Skip-gram 三、基于Hierarchical Softmax的 CBOW 模型和 Skip-gram 模型3.1 CBOW 模型3.2 Skip-gram 模型 参考资料 由于计算机不能直接对各种字符进行运算,为此需要…

党建展馆vr仿真解说员具有高质量的表现力和互动性

随着虚拟数字人应用渐成趋势,以虚拟数字人为核心的营销远比其他更能加速品牌年轻化进程和认识,助力企业在激烈的市场竞争中脱颖而出,那么企业虚拟IP代言人解决了哪些痛点? 解决品牌与代言人之间的风险问题 传统代言人在代言品牌时&#xff0…

【C语言|关键字】C语言32个关键字详解(4)——其他(typedef、sizeof)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

vue面试题及答案【集合目录】

前言: 欢迎浏览和关注本专栏《 前端就业宝典 》, 不管是扭螺丝还是造火箭, 多学点知识总没错。 这个专栏是扭螺丝之上要造火箭级别的知识,会给前端工作学习的小伙伴带来意想不到的帮助。 本专栏将前端知识拆整为零,主要…

【技能树笔记】网络篇——练习题解析(九)

目录 前言 一、OSPF双栈 1.1 OSPFv3 LSA 1.2 OSPFv3 二、ISIS双栈 2.1 ISISv6 2.2 ISIS高级特性 三、BGP双栈 四、PIM双栈 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filot…

2023 10月最新Vmd 下载安装教程,WindowsLinux

文章目录 下载Vmdwindows版本安装LINUX版本安装 下载Vmd 谷歌搜索VMD 点击左下角download VMD 可选择对应版本 注:点击后会出现输入用户名和密码,由于我已注册,界面不见了,所以直接描述一下。 输入用户名和密码然后会出现让登记…

AI工具大爆发,写作工具选择谁?

AI在生活中的发挥的作用越来越明显,许多人也想使用AI工具来提高自己的工作效率又或者学习效率,那么作为AI小白的我们该怎么选择写作工具呢?跟着小编的脚步,接着往下阅读。 首先我们需要选择一个适合自己的AI工具以便开展后续工作…

HTML图像标签

html文件&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>图像标签学习</title> </head> <body> <img src"../resources/image/01.jpg" alt"小狗图…

玩转 MaxCompute SQL 训练营! 数据分析挖掘迅速出师

云布道师 用 MaxCompute 在数据里面挖呀挖呀挖&#xff0c;写花样的 sql 分析花样的数据&#xff01;云原生大数据计算服务 MaxCompute 是企业级 Serverless 智能数仓&#xff0c;向用户提供了完善的数据导入方案以及多种经典的分布式计算模型&#xff0c;能够更快速的解决用户…

多变量GARCH模型R代码实现

大家好&#xff0c;我是带我去滑雪&#xff01; 多变量GARCH&#xff08;Generalized Autoregressive Conditional Heteroskedasticity&#xff09;模型是一种用于建模多个时间序列变量之间的条件异方差性&#xff08;conditional heteroskedasticity&#xff09;的统计模型。它…

一文读懂:什么是块存储、文件存储、对象存储?

大家好&#xff0c;我是小学僧。 提到"存储"&#xff0c; 你首先想到的是这个&#xff1f; 还是这个&#xff1f; 也或者还有这个&#xff1f; 哈哈&#xff0c;没错&#xff0c;我们生活中已经离不开存储&#xff0c;视频、音乐、图片、文本、表格这样的数据文件都…

mac上mongodb 以及可视化工具 下载以及安装

简介 1. 下载 官网上的下载地址藏得非常深&#xff0c;不花老半天 根本找不到 下载地址 https://www.mongodb.com/try/download/community 目前最新社区版本7.0.2 下载链接 mac intel芯片 &#xff1a; https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.2.tgz ma…

【Docker从入门到入土 5】 使用Docker-compose一键部署Wordpress平台

Docker-compose 一、YAML 文件格式及编写注意事项&#xff08;重要&#xff09;1.1 简介1.2 yaml语法特性1.3 yaml文件格式1.4 json格式简介 二、Docker-compose2.1 简介2.2 docker-compose的三大概念2.3 docker-compose配置模板文件常用的字段2.4 docker-compose 常用命令 三、…

1-08 移动端适配 rem+vm

移动端适配 remvm React配置postcss-px-to-viewport 安装依赖&#xff1a;在项目根目录下运行以下命令安装所需的依赖包&#xff1a; npm install postcss-px-to-viewport --save-dev配置代码 const path require(path);module.exports {webpack: {alias: {: path.resolv…

tuxera ntfs2024破解版mac电脑磁盘读写软件

大家都知道由于操作系统的原因&#xff0c;在苹果电脑上不能够读写NTFS磁盘&#xff0c;但是&#xff0c;今天小编带来的这款tuxera ntfs 2024 mac版&#xff0c;完美的解决了这个问题。这是一款在macOS平台上使用的磁盘读写软件&#xff0c;能够实现苹果Mac OS X系统读写Micro…

计算机组成原理(一目了然的顶级总纲)(持续更新!)

文章目录 886冯诺依曼计算机计算机的五大部件&#xff08;又称五大字系统&#xff09;细化的计算机组成框图存储器 886 计算机系统由“硬件”和“软件”两大部分组成。 计算机的软件通常又可以分为两大类&#xff1a;系统软件和应用软件。 冯诺依曼计算机 数学家冯诺依曼&am…

1-07 React配置postcss-px-to-viewport

React配置postcss-px-to-viewport 移动端适配 安装依赖&#xff1a;在项目根目录下运行以下命令安装所需的依赖包&#xff1a; npm install postcss-px-to-viewport --save-dev配置代码 const path require(path);module.exports {webpack: {alias: {: path.resolve(__di…

软考系列(系统架构师)- 2021年系统架构师软考案例分析考点

试题一 软件架构&#xff08;架构风格、质量属性&#xff09; 【问题1】&#xff08;9分&#xff09; 在架构评估过程中&#xff0c;质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。 请将合适的质量属性名称填入图1-1中(1)、(2)空白处&#xf…

蓝桥杯每日一题0223.10.23

第几天 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 简单枚举&#xff08;用k来记录经过的天数&#xff09; #include<bits/stdc.h> using namespace std; bool is_ren(int n) {if(n % 400 0 || (n % 4 0 && n % 100 ! 0))return true;return false; } int …

Towards a Rigorous Evaluation of Time-series Anomaly Detection(论文翻译)

1 Introduction 随着工业4.0加速系统自动化&#xff0c;系统故障的后果可能会产生重大的社会影响&#xff08;Baheti和Gill 2011; Lee 2008; Lee&#xff0c;Bagheri和Kao 2015&#xff09;。为了防止这种故障&#xff0c;检测系统的异常状态比以往任何时候都更加重要&#xff…