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

Redis过期淘汰策略

一. Redis过期淘汰策略

当Redis已用内存超过maxmemory限定时,触发主动清理策略。 主动清理策略在Redis 4.0之前一共实现了 6 种内存淘汰策略,在 4.0 之后,又增加了 2 种 策略,总共8种

  • 针对设置了过期时间的key做处理:
  1. volatile-ttl:在筛选时,会针对设置了过期时间的键值对,根据过期时间的先后进 行删除,越早过期的越先被删除。
  2. volatile-random:就像它的名称一样,在设置了过期时间的键值对中,进行随机 删除。
  3. volatile-lru:会使用 LRU 算法筛选设置了过期时间的键值对删除。
  4. volatile-lfu:会使用 LFU 算法筛选设置了过期时间的键值对删除。
  • 针对所有的key做处理:
  1. allkeys-random:从所有键值对中随机选择并删除数据。
  2. allkeys-lru:使用 LRU 算法在所有数据中进行筛选删除。
  3. allkeys-lfu:使用 LFU 算法在所有数据中进行筛选删除。
  • 不处理:
  1. noeviction:不会剔除任何数据,拒绝所有写入操作并返回客户端错误信息" (error) OOM command not allowed when used memory",此时Redis只响应读 操作。

二. Redis淘汰Key的算法LRU与LFU区别

  • LRU 算法(Least Recently Used,最近最少使用):淘汰很久没被访问过的数据,以最近一 次访问时间作为参考。
  • LFU 算法(Least Frequently Used,最不经常使用):淘汰最近一段时间被访问次数最少的 数据,以次数作为参考。
    绝大多数情况我们都可以用LRU策略,当存在大量的热点缓存数据时,LFU可能更好点。

三. 删除Key的命令会阻塞Redis吗

有可能的,我们看下DEL Key命令的时间复杂度:

  • 删除单个字符串类型的 key ,时间复杂度为 O(1)。
  • 删除单个列表、集合、有序集合或哈希表类型的 key ,时间复杂度为 O(M), M 为以上数据结构内的元素数量。 如果删除的是列表、集合、有序集合或哈希表类型的 key,如果集合元素过多,是会阻塞 Redis的。对于这种情况我们可以借助scan这样的命令循环删除元素。

如果删除的是字符串类型的 key,但是key对应value比较大,比如有几百M,那么也是会 阻塞Redis的。这种bigkey是我们要尽量减少出现的情况。

相关文章:

Redis过期淘汰策略

一. Redis过期淘汰策略 当Redis已用内存超过maxmemory限定时,触发主动清理策略。 主动清理策略在Redis 4.0之前一共实现了 6 种内存淘汰策略,在 4.0 之后,又增加了 2 种 策略,总共8种: 针对设置了过期时间的key做处理…...

微信小程序---自定义组件

目录 1.局部引用组件 2.全局引用组件 3.组件和页面的区别 4.自定义组件样式 5.properties属性 6.data和properties的区别 7.数据监听器 8.纯数据字段 9.自定义组件-组件的生命周期 lifetimes节点 10.组件所在的页面的生命周期 pageLifetimes节点 11.插槽 &#x…...

CGAL的最优传输曲线重构

1、介绍 此程序包实现了一种重建和简化二维点集的方法。输入是一组具有质量属性的二维点,可能受到噪声和离群值的干扰。输出是一组线段和孤立点,它们近似于输入点,如下图所示。质量属性与每个点的近似重要性有关。 左:输入点集受到…...

使用Docker本地安装部署Draw.io绘图工具并实现远程访问协作办公

前言 提到流程图,大家第一时间可能会想到Visio,不可否认,VIsio确实是功能强大,但是软件为收费,并且因为其功能强大,导致安装需要很多的系统内存,并且是不可跨平台使用。所以,今天给…...

流程图、泳道图的介绍和示例分享,以及自定义元件库的介绍

目录 一. 流程图介绍 二. Processon使用 新建一个流程图 图形的使用 三. 流程图示例 登录界面 门诊业务流程图 住院业务流程图 药房业务流程图 会议OA流程图 四. 泳道图介绍 五. 自定义元件库 5.1 新建一个元件库 5.2 创建元件 5.3 使用自定义元件库 一. 流程图介…...

RabbitMq的详细使用

消息队列RabbitMQ详细使用 文章目录 消息队列RabbitMQ详细使用MQ 的相关概念什么是MQ为什么要用MQMQ 的分类MQ 的选择 RabbitMQRabbitMQ 的概念四大核心概念各个名词介绍安装RabbitMQWeb管理界面及授权操作Docker 安装Hello world简单示例 Work Queues轮训分发消息消息应答自动…...

软件设计师——软件工程(二)

📑前言 本文主要是【软件工程】——软件设计师——软件工程的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…...

阿里云RDS MySQL 数据如何快速同步到 ClickHouse

云数据库 RDS MySQL 和 云数据库 ClickHouse 是阿里云推出的两个备受欢迎的数据库解决方案,它们为用户提供了可靠的数据存储方案、分析数仓方案,本文介绍如何快速将 RDS MySQL 的数据同步到云数据库 ClickHouse。 如何快速将RDSMySQL的数据同步到云数据库…...

HINet技术要点

《HINet: Half Instance Normalization Network for Image Restoration》发表于CVPR2021,是旷视科技&复旦大学&北大在图像复原方面的的最新进展,所提方案取得了NTIRE2021图像去模糊Track2赛道冠军。 下面谈谈该文章的主要技术点。 1. HIN&#…...

IntelliJ IDEA2023学习教程

详细介绍idea开发工具及使用技巧 1. 2023版安装1.1删除老版本1.2 下载及安装 3.快捷技巧4. 创建各种model 1. 2023版安装 1.1删除老版本 如果以前装有idea需要先删除,以避免冲突,在idea安装目录/bin/Uninstall.exe双击1.2 下载及安装 最新版本 https:/…...

MATLAB基础应用精讲-【数模应用】神经网络(补充篇)

目录 前言 几个相关概念 反向传播 梯度下降 损失函数 优化函数...

洛谷题单【算法1-7】搜索

P1135 奇怪的电梯 一开始以为深搜肯定没问题,从a点出发,衍生出一个二叉树,遍历所有情况就好了,但是会重复,所以加了一个vis防止重复,但是只拿了64pts,因为有可能某个点并不是最短被到达的&…...

WordPress主题Lolimeow v8.0.1二次元风格支持erphpdown付费下载

WordPress国人原创动漫主题lolimeow免费下载 lolimeow是一款WordPress国人原创主题,风格属于二次元、动漫、可爱萝莉风,带有后台设置,支持会员中心。该主题为免费主题。 1.侧栏/无侧栏切换! 2.会员中心(配套Erphpdown…...

WTN6xxx系列OTP语音芯片:智能语音解决方案的可靠之选

在智能语音交互领域,唯创知音的WTN6xxx系列OTP语音芯片以其独特的特性成为声音播放提示IC的可靠之选。本文将深入探讨WTN6xxx系列OTP语音芯片的应用优势,展示其在各个方面的卓越性能。 一、低成本、高性能 1.经济实惠: WTN6xxx系列OTP语音芯…...

腾讯云Elasticsearch Service产品体验

基本介绍 产品概述 腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需…...

SQLE 3.0 部署实践

来自 1024 活动的投稿系列 第一篇《SQLE 3.0 部署实践》 . 作者:张昇,河北东软软件有限公司高级软件工程师,腾讯云社区作者。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文共 32…...

爬虫的分类

爬虫的分类 网络爬虫按照系统结构和实现技术,大致可分为4类,即通用网络爬虫、聚焦网络爬虫、增量网络爬虫和深层次网络爬虫。 1.通用网络爬虫:搜索引擎的爬虫 比如用户在百度搜索引擎上检索对应关键词时,百度将对关键词进行分析…...

简说vue-router原理

vue-router原理 hash模式 实现原理 改变描点监听描点变化 history模式 实现原理 改变url监听url变化 abstracthash 和 history 模式有什么区别? url 不一样原理不同 其他总结扩展 history 出现404错误 vue-router原理 vue-router是vue项目的重要组成部分&#x…...

什么是 Spring 框架?

Spring 框架是一个开源的、轻量级的企业级应用框架,用于构建 Java 应用程序。它提供了全面的基础设施支持,以简化企业级应用的开发。Spring 的核心目标是通过促进良好的设计原则和编程习惯来提高 Java 开发人员的效率和系统的可维护性。 Spring 框架的主…...

Vue2.x源码:new Vue()做了啥

例子1new Vue做了啥?new Vue做了啥,源码解析 initMixin函数 初始化 – 初始化Vue实例的配置initLifecycle函数 – 初始化生命周期钩子函数initEvents – 初始化事件系统初始化渲染 initRender初始化inject选项 例子1 <div id"app"><div class"home&…...

OpenClaw人人养虾:配置Anthropic (Claude)

Anthropic 是 Claude 系列模型的开发者。Claude 以出色的指令遵循能力、深度推理和长文本处理著称。OpenClaw 支持通过 API Key 或 Claude Code CLI OAuth 接入。 认证方式 方式一&#xff1a;API Key&#xff08;推荐&#xff09; 前往 Anthropic Console 创建 API Key在 O…...

AzurLaneAutoScript:碧蓝航线全自动游戏助手,释放您的双手与时间

AzurLaneAutoScript&#xff1a;碧蓝航线全自动游戏助手&#xff0c;释放您的双手与时间 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAuto…...

BG3 Mod加载异常完全解决方案:从顺序重置到冲突修复的系统指南

BG3 Mod加载异常完全解决方案&#xff1a;从顺序重置到冲突修复的系统指南 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 博德之门3 Mod管理器故障解决是许多玩家在使用BG3ModManager时…...

有线/无线(空口)抓包过程及其分析

一、如何判断该抓有线包&#xff0c;还是无线包层级问题类型抓包位置L1/L2&#xff08;无线&#xff09;连不上、掉线、弱信号无线抓包L2&#xff08;有线&#xff09;VLAN错误有线抓包L3&#xff08;IP&#xff09;DHCP失败有线抓包L4&#xff08;传输&#xff09;丢包、重传有…...

抖音下载器:从零开始,轻松获取无水印视频的完整指南

抖音下载器&#xff1a;从零开始&#xff0c;轻松获取无水印视频的完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallb…...

别再混淆了!一文搞懂目标检测中的AP、mAP和mAP@0.5:0.95区别

目标检测评估指标全解析&#xff1a;从AP到mAP0.5:0.95的实战指南 在计算机视觉领域&#xff0c;目标检测模型的性能评估一直是研究者关注的焦点。面对AP、mAP、mAP0.5:0.95等专业术语&#xff0c;不少开发者容易混淆它们的计算方式和适用场景。本文将深入剖析这些关键指标的技…...

[Python3高阶编程] - 异步编程深度学习指南二(补充1): 什么是 Barrier 原语 【异步!!!】

asyncio.Barrier 是 Python 3.11&#xff08;2022 年 10 月&#xff09;新增的高级同步原语&#xff0c;用于解决特定并发协作场景。一、Barrier 产生的背景&#xff1a;为什么需要它&#xff1f;核心问题&#xff1a;“多协程阶段对齐”在并发编程中&#xff0c;经常遇到这样的…...

JSON处理效率倍增:探索JSON Viewer的3个鲜为人知实用功能

JSON处理效率倍增&#xff1a;探索JSON Viewer的3个鲜为人知实用功能 【免费下载链接】json-viewer It is a Chrome extension for printing JSON and JSONP. 项目地址: https://gitcode.com/gh_mirrors/js/json-viewer 在数据驱动开发的时代&#xff0c;高效处理JSON数…...

Java 25 FFI与C++ ABI不兼容?GCC 13/Clang 18符号修饰差异导致段错误的逆向工程溯源(含LLVM IR级对比图)

第一章&#xff1a;Java 25 FFI与C ABI不兼容问题的现场复现与现象确认Java 25 引入的 Foreign Function & Memory API&#xff08;FFI&#xff09;在调用 C 原生函数时&#xff0c;因 C ABI&#xff08;Application Binary Interface&#xff09;未被标准化支持&#xff0…...

Autovisor:5分钟实现智慧树课程自动化学习的智能助手

Autovisor&#xff1a;5分钟实现智慧树课程自动化学习的智能助手 【免费下载链接】Autovisor 2024知道智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装发行版] 项目地址: https://gitcode.com/gh_mirrors/au/Autovisor Autovisor是一款专为智慧树在线课程平…...