redis数据淘汰策略:

面试官:了解redis数据淘汰策略吗?

就是当Redis内存使用达到设置的上限时, 此时需要使用redis数据淘汰机制来进行数据淘汰。(有针对key的 和 针对value数据的)

Redis支持8种不同策略来选择要删除的key:

  • noeviction: 不淘汰任何key,但是内存满时不允许写入新数据,默认就是这种策略。
  • volatile-ttl: 对设置了TTL的key,比较key的剩余TTL值,TTL越小越先被淘汰
  • allkeys-random:对全体key ,随机进行淘汰。也就是直接从db->dict中随机挑选
  • volatile-random:对设置了TTL的key ,随机进行淘汰。也就是从db->expires中随机挑选。
  • allkeys-lru: 对全体key,基于LRU算法进行淘汰
  • volatile-lru: 对设置了TTL的key,基于LRU算法进行淘汰
  • allkeys-lfu: 对全体key,基于LFU算法进行淘汰
  • volatile-lfu: 淘汰最少使用(最近最不常用)的键值;
    比较容易混淆的有两个:
    • LRU(Least Recently Used),最少最近使用。用当前时间减去最后一次访问时间,这个值越大则淘汰优先级越高。
    • LFU(Least Frequently Used),最少频率使用。会统计每个key的访问频率,值越小淘汰优先级越高。

在这里插入图片描述

● LRU算法
○ 维护一个双向链表,用于顺序存储被访问过的key。在访问数据时,最新访问过的key将被移动到表头,即最近访问的key在表头,最少访问的key在表尾。
● 近似LRU算法(Redis)
○ 给每个key维护一个时间戳,淘汰时随机采样5个key,从中淘汰掉最旧的key。如果还是超出内存限制,则继续随机采样淘汰。
○ 优点:比LRU算法节约内存 只对少量key进行取样(LRU算法需要把每一个key都存下来维护一个链表),却可以取得非常近似的效果
● LFU算法
○ Redis4.0 引入。 根据数据访问频次 淘汰最近访问次数最低的数据

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTF比赛中web安全题型讲解

在CTF(Capture The Flag)竞赛中,Web安全题目是测试参赛者对Web应用漏洞利用和防御能力的重要环节。以下是30道Web类题型及其标准答案,对初次打比赛的网安人员来说,还是有一些帮助的,喜欢可以收藏。 题目及…

PDI/Kettle-9.4.0.0-343源码下载及编译

目录 🍑一、概要🍊最新版本10.x(2023-11-30) 🍑二、下载🍑三、编译🍊3.1、导入开发工具🍊3.2、开始编译🍊3.3、编译报错🍊3.4、报错原因:jdk版本低…

【AI底层逻辑】——数学与机器学习:优雅的智慧之舞

目录 “宝藏网站” 聊聊数学 “华尔兹” “智慧之舞” 后续的章节我们将迎来新的篇章,新的切入点探索AI的奥秘,通过揭示高数、矩阵、概率论等数学知识与机器学习的关系来深入理解AI的奥秘! “宝藏网站” 开头先给大家上几个宝藏网站&am…

对于版面识别的一个疑问

paddleocr识别出来的rigion是无序的,我用augument-xy-cut对bbox排序之后。 下一步就是对自然段进行划分,即res字段里面的text_region进行merge_para,不过这时我产生了一个疑问,既然有merge_para了,前面对bbox的排序有必…

Threejs发光闪烁提示特效

一、导语 发光闪烁特效应该在我们的项目中是经常需要去封装的一个特效吧,一般用于点击选择,选中物体,或者一些特效加持于中心物体,物体碰撞检测后的发光特效等等 二、分析 我们可以合理的使用后处理特效,上步骤&am…

SpringTask

SpringTask是一种用于定时任务调度的框架周期性任务、定时任务需要SpringTask框架 比较出名的框架有三种: (1)SpringTask(没有很大的并发量需求量,用SpringTask足够) (2)Quartz(老牌的定时任务&#xff0c…

如何更改Jupyter Notebook中的环境?

1.首先,打开终端 2.接着,分别输入以下命令 conda env list 把EXPose替换为自己的环境变量 conda activate EXPose 3.接下来安装‘ ipykernel ’软件包 conda install ipykernel 4. 将该环境添加到Jupyter Notebook中;在Jupyter Notebook…

AICore 带来了 Android 专属的 AI 能力,它要解决什么?采用什么架构思路?

前言 Google 最近发布的 Gemini 模型在全球引起了巨大反响,其在多模态领域的 Video demo 无比震撼。对于 Android 开发者而言,其中最振奋人心的消息莫过于 Gemini Nano 模型将内置到 Android 系统当中,并开放给开发者使用。 事实上&#xf…

漏洞复现-华为Auth-HTTP服务器任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

SL9008 3.6-60V输入 LED降压恒流芯片 内置MOS管 带PWM调光

SL9008是一款内置MOS管、具有PWM调光功能的LED降压恒流芯片,适用于3.6-60V的输入电压范围。它采用了先进的电路设计,确保了高效率和长寿命,同时具有宽电压输入范围和优异的负载调整率。 SL9008的主要特点包括: 1. 宽输入电压范围&…

STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计

STM32单片机项目实例:基于TouchGFX的智能手表设计(2)UI交互逻辑的设计 目录 一、UI交互逻辑的设计 1.1 硬件平台的资源 1.2 界面切换功能 ​​​​​​​1.3 表盘界面 1.4 运动界面 ​​​​​​​1.6 设置界面 ​​​​​​​1.7 应…

Axure的安装与基本使用

目录 一.Axure是什么 二.Axure安装 2.1 一键式安装 2.2 汉化 2.3 授权登录 三.Axure的界面介绍及基本使用 3.1 菜单栏的使用 3.2 工具栏的使用 3.3 页面概要的使用及组件的使用 3.4 组件的样式设计 一.Axure是什么 Axure是一个流行的交互式原型设计工具,一般是…

函数的栈帧

我们每次在调用函数的时候,都说会进行传参。每次创建函数,或者进行递归的时候,也会说会进行压栈。 那么,今天我们就来具体看看函数到底是如何进行压栈,传参的操作。 什么是栈? 首先我们要知道,…

基于SSM+MySQL学生宿舍管理系统的设计与实现(源码+数据库+文档)

摘 要 近年来,随着计算机技术的不断发展和运用,许多实际问题都得到了较好地解决。随着现代社会对企业经营的需求日益增长,企业的无纸办公也逐渐得到了推广。本学生宿舍管理系统的设计开发,目标就是解决宿舍管理复杂的人为管理&a…

聚观早报 |极氪金砖电池发布;微信湾事通小程序上线

【聚观365】12月11日消息 极氪金砖电池发布 微信湾事通小程序上线 华为自拍专利曝光 鸿蒙智行App上架华为应用市场 苹果“播客”应用将登陆特斯拉汽车 极氪金砖电池发布 极氪汽车官方此前宣布极氪能源日 2023 暨电池新品发布会将于 12 月 14 日举行,slogan 为…

钓鱼网站域名识别工具dnstwist算法研究

先上一个AI的回答: dnstwist是一种钓鱼网站域名识别工具,可帮助用户识别和检测可能被恶意使用的域名。它通过生成类似的域名变体来模拟攻击者可能使用的钓鱼域名,并提供了一系列有用的功能和信息。 dnstwist能够生成一组类似的域名变体&…

管理类联考——数学——真题篇——按知识分类——几何

文章目录 2023真题(2023-07)-几何-解析几何-最值真题(2023-10)-几何-立体几何-正方体:体积: V a 3 Va^3 Va3;表面积: S 表 6 a 2 S_表6a^2 S表​6a2;体对角线外接球的半…

电源模块测试系统测试LED电源项目的优势

LED电源测试是电源在设计、生产过程中的关键环节,也是确保LED照明产品可靠性和稳定性的重要步骤。LED电源测试一般包括电压、电流、效率、稳定性等。电源模块测试系统测试LED电源,实现自动化测试,保证测试结果的可靠性。 LED电源测试项目及方…

低代码云MES系统才是工业互联网的未来

众所周知,传统制造业目前已更多向智能化、绿色化方向发展。减少资源浪费、跟踪产品信息、提升生产品质、减少库存数量等有益企业的决策,成为管理层所考虑的企业基本问题。因此,制造业现场需解决此类难题才能带动企业数字化转型,以…

NXP应用随记(一):S32K3xx手册阅读随记

目录 1、概述 1.1、S32k组合和应用程序 1.2、技术概述 2、Safety 3、Low Power 3.1、RUN mode 3.2、Standby mode 4、外设概述与互联 ADC WDG STM PIT 1、概述 1.1、S32k组合和应用程序 核心和平台:跨S32K3系列的ArmCortex-M7核心,用于软件重用 安全性…