当前位置: 首页 > news >正文

【redis】redis淘汰策略

一、说明

  • 1.redis key没有设置过期时间被redis主动删除了
  • 2.当redis已用内存超过maxmemory限定时,触发主动清理策略
  • 3.主动清理策略在redis4.0之前一共实现了6种内存淘汰策略,在4.0之后,增加了2种,总共8种

二、淘汰策略

2.1 针对设置了过期时间的key做处理
  • 1.volatile-ttl:在筛选时,会针对设置了过期时间的键对值,根据过期时间的先后进行删除,越早过期的越先被删除
  • 2.volatile-random:针对设置了过期时间的键值对随机删除
  • 3.volatile-lru:会使用lru算法筛选设置了过期时间的键值对删除(Least Recently Used的缩写,即最近最少使用)
  • 4.volatile-lfu:会使用lfu算法筛选设置了过期时间的键值对删除(Least Frequently Used的缩写,即最不经常使用)
2.1 针对所有key做处理
  • 1.allkeys-random:从所有键值对中随机选择并删除数据
  • 2.allkeys-lru:使用LRU算法在所有数据中进行筛选删除
  • 3.allkeys-lfu:使用LFU算法在所有数据中进行筛选删除
2.1.不处理
  • 1.noeviction:不会删除任何数据,拒绝所有写入操作并返回客户端错误信息,redis只响应读操作((error) OOM command not allowed when used memory)

三、LRU和LFU的区别

  • 1.LRU,最近最少使用,淘汰很久没被访问过的数据,以最近一次访问时间作为参考
  • 2.LFU,最不经常使用,淘汰最近一段时间被访问次数最少的数据,以次数作为参考
  • 3.绝大多数情况使用LRU策略
  • 4.存在大量热点缓存数据时,LFU更好

相关文章:

【redis】redis淘汰策略

一、说明 1.redis key没有设置过期时间被redis主动删除了 2.当redis已用内存超过maxmemory限定时,触发主动清理策略 3.主动清理策略在redis4.0之前一共实现了6种内存淘汰策略,在4.0之后,增加了2种,总共8种 二、淘汰策略 2.1 针对…...

指针和数组(二)

目录 指针和数组 数组名和指针的区别 多维数组 数组指针 语法 作用 内存大小 自增运算 【】运算 指针和数组 结论:数组的本质就是指针。数组的【】运算同样可以用指针来运算 证明 C代码 int array[5];int* ptr{ &array[0] };*ptr 5;array[0] 5;arr…...

Linux WIFI 驱动实验

目录WIFI 驱动添加与编译向Linux 内核添加WIFI 驱动配置Linux 内核编译WIFI 驱动驱动加载测试wireless tools 工具移植与测试wireless tools 移植wireless tools 工具测试wpa_supplicant 移植openssl 移植libnl 库移植wpa_supplicant 移植WIFI 联网测试RTL8188 USB WIFI 联网测…...

UART驱动情景分析-write

一、write过程分析 App写: 使用行规程来写数据最终存入uart_state->xmit的buffer里 硬件发送: 使用硬件驱动中uart_ops->start_tx开始发送具体的发送方式有两种:通过DMA、通过中断 中断方式: 方法1:直接使能tx …...

Metasploit入门到高级【第四章】

来自公粽号:Kali与编程预计更新第一章:Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章:Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章:Metasploi…...

java 继承super

在java继承中,如果子类继承父类,在子类中要给用构造器给父类的属性赋值,需要用到 super 举例,Son类继承Father 类,便于理解 在 new Son(String name, int age) 传入name,和age的值 将会调用Son这个构造器…...

Java学习笔记——多态

2.1 概述 引入 多态是继封装、继承之后,面向对象的第三大特征。 生活中,比如跑的动作,小猫,小狗和大象,跑起来都是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来是不一样的。可见&#x…...

Python处理JSON数据

Python和JSON JavaScript Object Notation (JSON) 是一种轻量级的数据交换格式,通常用于Web应用程序之间的数据交换。JSON的设计使得它非常易于人和机器阅读和编写。JSON数据格式与Python数据结构非常相似,因此Python中提供了一个json模块,用…...

JVM信息查询命令

1、查询jar包运行进程 jps #通过jps命令找出jar的进程IDps -ef|grep xxxx #通过包名找出进程ID2、查询JVM的堆信息 jmap -heap pid #通过jmap命令查询堆信息rootd57bff9f-c8nvn:/apps# jmap -heap 6 Picked up JAVA_TOOL_OPTIONS: -Xloggc:/data/tsf_apm/monitor/jvm…...

redis 面试题

🍕 redis 面试题常规问题什么是 Redis?为什么要使用 Redis?Redis 一般有哪些使用场景?Redis 为什么快?数据类型和数据结构Redis有哪些数据类型?常用操作和应用Bitmaps (位图) | 二进制计数与过滤计数器记录…...

SpringCloud微服务技术栈.黑马跟学(十二)

SpringCloud微服务技术栈.黑马跟学 十二今日目标服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.1.1.修改配置1.1.2.定义Return回调1.1.3.定义ConfirmCallback1.2.消息持久化1.2.1.交换机持久化1.2.2.队列持久化1.2.3.消息持久化1.3.消费者消息确认1.3.1.演示none模式1.3…...

HashMap集合存储学生对象并遍历

需求:创建一个HashMap集合,键是学生对象(Student),值是居住地。存储多个键值对元素,并遍历。 要求保证键的唯一性:如果学生对象的成员变量值相同,我们就认为是同一个对象 思路: 定义…...

“提效”|教你用ChatGPT玩数据

ChatGPT与数据分析(二) 上文给简单聊了一下为什么ChatGPT不能取代数据分析师,本文我们来深入感受一下如何让GPT帮助数据分析师“提效”。 场景一:SQL取数 背景:多数数据分析师都要用SQL语言从数据库中提取数据&#x…...

https://app.hackthebox.com/machines/Inject

https://app.hackthebox.com/machines/Inject Ref: 1.https://blog.csdn.net/qq_58869808/article/details/129505388 2.https://blog.csdn.net/m0_73998094/article/details/129474782 info collecting ┌──(kwkl㉿kwkl)-[~/HODL/htb/Inject] └─$ nmap -A …...

Java Web 实战 15 - 计算机网络之网络编程套接字

文章目录一 . 网络编程中的基本概念1.1 网络编程1.2 客户端(client) / 服务器(server)1.3 请求(request) / 响应(response)1.4 客户端和服务器之间的交互数据1.4.1 一问一答1.4.2 多问一答1.4.3 一问多答1.4.4 多问多答二 . socket 套接字2.1 UDP 的 Socket API2.1.1 引子2.1.2…...

基于pdf2docx模块Python实现批量将PDF转Word文档(安装+完整代码教程)

PDF文件是一种常见的文档格式,但是在编辑和修改时不太方便,因为PDF本质上是一种静态的文档格式。因此,有时候我们需要将PDF文件转换成Word格式,以便更好地编辑和修改文档。在本篇文章中,我们将介绍如何使用Python实现P…...

3.21~3.22

识编程语言中的&#xff0c;局部变量&#xff0c;全局变量&#xff0c;以及变量生存周期&#xff0c;整形&#xff0c;浮点型数据的内存表示&#xff0c;od的内存窗口的使用 先看一个代码样例 #include<windows.h> #include<stdio.h>#pragma warning(disable:499…...

Chromium 改造实录:增加 MPEG TS 格式支持

在《选择最新 Chromium&#xff0c;支持 H264 / H265》一文中&#xff0c;记录了我通过升级 Chromium 版本解决了 H264 / H265 视频支持难题。然而难题接踵而至&#xff0c;这次的难题是 MPEG TS 流的支持。MPEG2-TS 传输流广泛应用于数字电视广播系统&#xff0c;所以是一个不…...

性能优化之-事件代理

js中的事件委托或是事件代理简单理解 事件委托也叫事件代理&#xff0c;“事件代理”即是把原本需要绑定在子元素的响应事件&#xff08;click、keydown…&#xff09;委托给父元素&#xff0c;让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。 概述&#x…...

MSDS 即化学品安全说明书

MSDS 即化学品安全说明书&#xff0c;亦可译为化学品安全技术说明书或化学品安全数据说明书&#xff0c;是化学品生产商和进口商用来阐明化学品的理化特性&#xff08;如PH值&#xff0c;闪点&#xff0c;易燃度&#xff0c;反应活性等&#xff09;以及对使用者的健康&#xff…...

Kali+MSF 安全攻防实操|Windows 渗透完整流程教程

入侵电脑&#xff0c;并没有我们想象的那么难&#xff0c;今天我们的文章主要是给一些基础比较薄弱的小伙伴们准备的&#xff0c;如果你从来没有利用msf进入过对方计算机&#xff0c;就赶紧找个风和日丽的下午&#xff0c;跟着博主一起来试试吧~ 01 什么是msf 演示环境 02 …...

口碑好的芯片老化座哪家专业

在芯片制造与测试领域&#xff0c;芯片老化座是一个至关重要的设备。它能够模拟芯片在长期使用中的各种环境条件&#xff0c;提前发现潜在问题&#xff0c;确保芯片在实际应用中的稳定性和可靠性。那么&#xff0c;口碑好的芯片老化座哪家专业呢&#xff1f;今天我们就来详细探…...

MCP协议实战:用mcp-custom-dev构建AI助手专属工具链

1. 项目概述&#xff1a;一个为开发者赋能的MCP自定义开发工具最近在和一些做AI应用开发的朋友聊天&#xff0c;发现大家普遍遇到一个痛点&#xff1a;虽然现在大语言模型&#xff08;LLM&#xff09;的API调用很方便&#xff0c;但想把它们真正“嵌入”到自己的业务流程里&…...

GPU加速网络爬虫:OpenCL异构计算在数据采集中的实践

1. 项目概述&#xff1a;一个面向硬件加速的开源抓取工具包最近在折腾一些数据采集和自动化任务时&#xff0c;我常常遇到一个瓶颈&#xff1a;当需要处理海量网页、进行高频次请求或者解析复杂的动态内容时&#xff0c;传统的基于CPU的抓取框架&#xff08;比如Scrapy、Reques…...

EDA工具选型实战:从价格到价值的深度迁移指南

1. 从价格战到价值战&#xff1a;一次EDA工具市场策略的深度复盘十年前&#xff0c;当Altium宣布将其旗舰PCB设计软件Altium Designer的价格下调约75%时&#xff0c;整个电子设计自动化&#xff08;EDA&#xff09;圈子都炸开了锅。这无异于在由Cadence、Mentor Graphics&#…...

Cerebro:为AI构建持久记忆与认知能力的本地化MCP工具系统

1. 项目概述&#xff1a;为AI赋予持久记忆与认知能力如果你和我一样&#xff0c;每天都在和Claude、ChatGPT这类大语言模型打交道&#xff0c;那你一定遇到过这个让人头疼的问题&#xff1a;每次开启一个新的对话会话&#xff0c;AI就像得了“健忘症”&#xff0c;之前聊过的项…...

Keyviz完全指南:5分钟掌握实时键鼠可视化技巧

Keyviz完全指南&#xff1a;5分钟掌握实时键鼠可视化技巧 【免费下载链接】keyviz Keyviz is a free and open-source tool to visualize your keystrokes ⌨️ and &#x1f5b1;️ mouse actions in real-time. 项目地址: https://gitcode.com/gh_mirrors/ke/keyviz 你…...

Claude Code 多项目 API 配置管理实践

背景 Claude Code 的项目级配置文件 .claude/settings.json 中包含 API 提供商相关的环境变量。当同时维护多个项目&#xff0c;每个项目使用不同的 API 提供商&#xff08;Anthropic 直连、OpenRouter 代理、自建转发等&#xff09;时&#xff0c;每次切换项目都需要手动修改…...

5个维度深度解析:如何实现高性能黑苹果系统的架构设计与优化策略

5个维度深度解析&#xff1a;如何实现高性能黑苹果系统的架构设计与优化策略 【免费下载链接】Hackintosh 国光的黑苹果安装教程&#xff1a;手把手教你配置 OpenCore 项目地址: https://gitcode.com/gh_mirrors/hac/Hackintosh 在传统PC硬件与macOS系统兼容性的技术挑战…...

AI技能统一管理:用Obsidian插件Agentfiles构建你的智能编码中枢

1. 项目概述&#xff1a;一个为AI编码时代打造的技能中枢 如果你和我一样&#xff0c;日常开发工作流里已经塞满了各种AI编码助手——Claude Code、Cursor、Codex、Windsurf……那么你一定也面临过同样的困境&#xff1a;每个工具都有自己的一套“技能”或“记忆”系统&#xf…...