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

Redis大key

Redis大key基本概念,影响

Redis 大 key 指在 Redis 中存储了大量数据的键,它会对 Redis 的性能和内存管理产生影响。
大key的定义与value的大小和元素数量有关,但这个定义并不是绝对的,而是相对的,具体取决于系统的使用场景和性能要求。大 key 通常有以下两种情况:

  • Value 存储占用空间大
  • 集合类型的Key中元素过多
    ![[Pasted image 20250227151208.png]]

造成的影响如下:
1.内存分布不均:大key占用过多的内存,可能导致Redis示例内存不足,触发淘汰策略或内存不足
2.阻塞请求:对大key的操作可能耗时过长,阻塞redis单线程,影响其他请求的响应时间
3.网络阻塞:读取大key时,返回的数据包过大,可能占满网络带宽,影响其他服务通信
4.持久化问题:大Key在生成RDB快照或AOF重写时会导致I/O压力增大,甚至引发服务暂停。
5.集群倾斜:在Redis集群中,大key可能导致某个分片负载过高,破坏数据均衡性。

Redis 大key是如何产生的

1、数据结构使用不当:将Redis用在不合适其能力的场景,如使用string类型存储大体积二进制文件或富文本数据。
2、业务设计不合理:没有对key中的成员进行合理拆分,导致个别key中的成员数量过多
3、未及时清理垃圾数据:没有定期清理无效数据
4、对业务预估不准确:业务上线前规划设计不足,为预见value的动态增长问题
5、过期时间设置不当:未给key设置过期时间或过期时间过长,导致value数量累积。
等等

Redis 大key如何检测

使用redis-cli --bigkeys

![[Pasted image 20250227162153.png]]

增加内存&流量&超时等指标监控

由于大key的value很大,执行读取时可能阻塞线程,这样Redis整体的每秒查询率会下降,并且客户端超时会增加,网络带宽会上涨,配置这些报警监控有助于我们发现大key的存在。

使用redis-rdb-tools离线文件分析工具

![[Pasted image 20250227163346.png]]

使用脚本扫描

编写脚本定期扫描redis的key,检查每个key中value的大小

Redis 大key如何处理

![[Pasted image 20250227163630.png]]

渐进式删除

  • 在Redis 4.0之前的版本中,由于没有提供异步删除的功能,删除大key可能会阻塞Redis的主线程,影响性能。因此,推荐使用渐进式删除,即逐步删除key中的元素,以减少对性能的影响。

惰性删除

  • 从Redis 4.0开始,引入了UNLINK命令,它支持异步删除key。这种方式称为惰性删除,因为它允许Redis在后台异步地删除key,从而减少对主线程的阻塞,提高性能。

value压缩:

  • 对存储在大key中的value进行压缩,以减少存储空间的占用。这可以通过使用压缩算法(如gzip、zlib等)来实现。压缩后的数据在读取时需要解压缩,可能会增加一些CPU开销,但可以显著减少内存使用。

value拆分:

  • 将大key中的value拆分成多个小的value,存储在不同的key中。这样可以减少单个key的大小,提高操作的灵活性和性能。拆分后,可以通过多个key来管理和访问原始数据。

相关文章:

Redis大key

Redis大key基本概念,影响 Redis 大 key 指在 Redis 中存储了大量数据的键,它会对 Redis 的性能和内存管理产生影响。 大key的定义与value的大小和元素数量有关,但这个定义并不是绝对的,而是相对的,具体取决于系统的使用…...

在 Apache Tomcat 中,部署和删除项目

在 Apache Tomcat 中,部署和删除 WAR 文件是常见的操作。以下是详细步骤: 1. 删除 WAR 文件 (1) 停止应用 进入 Tomcat 的管理界面(默认地址:http://localhost:8080/manager/html)。 找到需要删除的应用,…...

前端基础之组件自定义事件

我们可以通过使用给组件绑定事件,当组件触发该事件时,就能进行值得返回 我们可以使用v-on属性来给子组件绑定自定义事件,此时该事件就会存在vc中,然后通过this.$emit来触发绑定的事件, 这样就能实现不需要app.vue来给子…...

在 Docker 中,无法直接将外部多个端口映射到容器内部的同一个端口

Docker 的端口映射是一对一的,即一个外部端口只能映射到容器内部的一个端口。 1. 为什么不能多对一映射? 端口冲突: 如果外部多个端口映射到容器内部的同一个端口,Docker 无法区分外部请求应该转发到哪个内部端口,会…...

基于DeepSeek(本地部署)和RAGFlow构建个人知识库

总结自视频(很强的小姐姐视频,讲解清晰明了):【知识科普】【纯本地化搭建】【不本地也行】DeepSeek RAGFlow 构建个人知识库_哔哩哔哩_bilibili 1. 背景 deepseek官方网页版也虽然很强,能够满足绝大部分需求&#xf…...

学习工具的一天之(burp)

第一呢一定是先下载 【Java环境】:Java Downloads | Oracle 下来是burp的下载 Download Burp Suite Community Edition - PortSwigger 【下载方法二】关注的一个博主 【BurpSuite 安装激活使用详细上手教程 web安全测试工具】https://www.bilibili.com/video/BV…...

2025-03-05 学习记录--C/C++-PTA 习题5-8 空心的数字金字塔

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、解题步骤 ⭐️ 下面以n5举例:🦋 第1步 🎀、外层循环(从1到…...

C++课程设计【宿舍管理查询软件】

宿舍管理查询软件 一、题目描述二、源码以及说明宿舍管理查询软件设计与实现1. 系统设计思路1.1 功能需求1.2 数据结构2. 系统实现3. 代码说明3.1 数据结构3.2 功能实现3.3 文件存储4. 示例运行输入输出5. 总结其他QT文章推荐一、题目描述 (一)问题描述 为宿舍管理人员编写一…...

Stable Diffusion模型采样方法与参数配置详解(含步数及画风适配表)

Stable Diffusion模型采样方法与参数配置详解(含步数及画风适配表) 以下为当前主流采样方法的性能对比及参数配置建议,结合显存占用、生成速度、适用场景等维度分类总结: 一、采样方法对比表 采样方法推荐步数显存占用生成速度…...

极狐GitLab 17.9 正式发布,40+ DevSecOps 重点功能解读【三】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...

vue+neo4j 四大名著知识图谱问答系统

编号: D039 视频 vueneo4j四大名著知识图谱问答系统 技术架构 vuedjangoneo4jmysql技术实现 功能模块图 问答:基于知识图谱检索、支持图多跳、显示推理路径 姜维的师傅的主公的臣是谁: 马谡 知识图谱:四大名著总共4个图谱 红楼梦图谱 …...

【智能体架构:Agent】LangChain智能体类型ReAct、Self-ASK的区别

1. 什么是智能体 将大语言模型作为一个推理引擎。给定一个任务, 智能体自动生成完成任务所需步骤, 执行相应动作(例如选择并调用工具), 直到任务完成。 2. 先定义工具:Tools 可以是一个函数或三方 API也…...

基于eRDMA实测DeepSeek开源的3FS

DeepSeek昨天开源了3FS分布式文件系统, 通过180个存储节点提供了 6.6TiB/s的存储性能, 全面支持大模型的训练和推理的KVCache转存以及向量数据库等能力, 每个客户端节点支持40GB/s峰值吞吐用于KVCache查找. 发布后, 我们在阿里云ECS上进行了快速的复现, 并进行了性能测试, ECS…...

Vue的简单入门 三

目录 侦听器 watch 注意 表单输入绑定 v-model v-model修饰符​编辑 lazy number Trim 模板引用 组件组成 组件引用三步走 组件的嵌套关系 header Main Aside Aritice Item App.vue组件引入三个子组件 组件的注册方式 全局注册组件的方法 (1) Vue 2 语…...

指纹细节提取(Matlab实现)

指纹细节提取概述指纹作为人体生物特征识别领域中应用最为广泛的特征之一,具有独特性、稳定性和便利性。指纹细节特征对于指纹识别的准确性和可靠性起着关键作用。指纹细节提取,即从指纹图像中精确地提取出能够表征指纹唯一性的关键特征点,是…...

使用wifi连接手机adb进行调试|不使用数据线adb调试手机|找应用错误日志和操作日志

手机在开发者选项里要开启无线调试 在手机设置中查看WiFi的IP地址 设置 -> WLAN -> 已连接的WiFi -> IP地址 使用手机的IP地址连接 adb connect 192.168.1.12:xxxxx 检查连接状态 adb devices 断开特定设备 adb disconnect 192.168.x.x:xxxxx 断开所有设备 …...

STM32——串口通信 UART

一、基础配置 Universal Asynchronous Receiver Transmitter 异步,串行,全双工 TTL电平 :高电平1 低电平0 帧格式: 起始位1bit 数据位8bit 校验位1bit 终止位1bit NVIC Settings一栏使能接受中断。 之前有设置LCD,…...

PHP fastadmin 学习

安装php环境安装mysql插件 修改 php.ini下载 phpstudy、fastadmin 错误 安装FastAdmin could not find driver 参考链接 安装插件 创建1.php <? phpinfo(); ?>运行 http://127.0.0.1/1.php 查看 POD 页面访问404 伪静态 Apache <IfModule mod_rewrite.c> O…...

Autojs无线连接vscode方法

1.获得电脑的IP 在电脑的CMD界面输入 ipconfig 然后找到ipv4的那一行&#xff0c;后面的即是你的电脑IP地址 2.打开vscode的autojs服务 安装autojs插件 在vscode界面按下ctrlshiftp 输入autojs 找到 点击 之后打开手机上的autojs 之后输入刚刚电脑上的地址 可以看到vsc…...

面试基础--MySQL SQL 优化深度解析

MySQL SQL 优化深度解析&#xff1a;EXPLAIN、索引优化与分库分表实践 引言 在互联网大厂的高并发场景下&#xff0c;数据库的性能优化是至关重要的。MySQL 作为最流行的关系型数据库之一&#xff0c;SQL 查询的性能直接影响了系统的响应时间和吞吐量。本文将深入探讨 MySQL …...

python之爬虫入门实例

链家二手房数据抓取与Excel存储 目录 开发环境准备爬虫流程分析核心代码实现关键命令详解进阶优化方案注意事项与扩展 一、开发环境准备 1.1 必要组件安装 # 安装核心库 pip install requests beautifulsoup4 openpyxl pandas# 各库作用说明&#xff1a; - requests&#x…...

版本控制器Git和gdb

一.版本控制器Git 1.版本控制简单来讲可以对每一份代码版本进行复制保存&#xff0c;保证每一版代码都可查 2.仓库的本质也是一个文件夹 3.git既是一个客户端&#xff0c;也是一个服务器&#xff0c;是一个版本控制器。而gitee和GitHub都是基于git的网站或平台 4.git的基本…...

大白话面试前的准备工作

面试前的准备工作非常重要&#xff0c;就像打仗前要做好各种准备一样&#xff0c;主要包括以下几个方面&#xff1a; 了解公司和岗位 公司情况&#xff1a;要知道这个公司是做什么的&#xff0c;比如是生产电子产品的&#xff0c;还是提供互联网服务的。还要了解它在行业里的…...

Dify 开源大语言模型应用开发平台使用(一)

文章目录 一、创建锂电池专业知识解答应用1.1 应用初始化 二、核心功能模块详解2.1 知识库构建2.2 工作流与节点编排节点类型说明工作流设计示例&#xff1a;锂电池选型咨询 2.3 变量管理 三、测试与调试3.1 单元测试3.2 压力测试3.3 安全验证 四、部署与优化建议4.1 部署配置4…...

天津大学02-深度解读DeepSeek:部署、使用、安全【文末附下载链接】

大模型风险与不当用例——价值观错位 大模型与人类价值观、期望之间的不一致而导致的安全问题&#xff0c;包含&#xff1a;• 社会偏见&#xff08;Social Bias&#xff09;LLM在生成文本时强化对特定社会群体的刻板印象&#xff0c;例如将穆斯林与恐怖主义关联&#xff0c;或…...

SPI驱动(三) -- SPI设备树处理过程

文章目录 参考资料&#xff1a;一、SPI设备树节点构成二、SPI设备树示例2.1 SPI控制器节点属性2.2 SPI设备节点属性 三、SPI设备树处理过程四、总结 参考资料&#xff1a; 内核头文件&#xff1a;include\linux\spi\spi.h内核文档&#xff1a;Documentation\devicetree\bindin…...

【RAG 篇】万字长文:向量数据库选型指南 —— Milvus 与 FAISS/Pinecone/Weaviate 等工具深度对比

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 文章目录 向量数据库的核心价值主流工具横向对比 FAISS:Meta 的高效检索引擎Pinecone:全托管商业…...

机器学习数学基础:40.结构方程模型(SEM)中卡方值与卡方自由度比

结构方程模型&#xff08;SEM&#xff09;中卡方值与卡方自由度比教程 在结构方程模型分析里&#xff0c;卡方值和卡方自由度比是评估模型拟合程度的重要指标&#xff0c;下面为大家详细介绍。 一、卡方值&#xff08;CMIN&#xff09; &#xff08;一&#xff09;基本概念与…...

MARL零样本协调之Fictitious Co-Play学习笔记

下列引用来自知乎作者Algernon 知乎link FCP作为ZSC领域两阶段训练方法的开创者 论文《Collaborating with Humans without Human Data》来自 NeurIPS 2021。这篇论文提出 Fictitious Co-Play (FCP) 来解决 ZSC 问题。论文认为&#xff0c;ZSC 的第一个重要问题是对称性&#x…...

idea中的查看git历史记录,不显示详细信息

一、正常情况显示 1、idea中git查看history正常显示如下图&#xff1a; 二、非正常情况下显示 1、idea中git查看history&#xff0c;现在不显示提交的历史文件详细信息&#xff0c;如下图&#xff1a; 三、解决方式 1、找到如下窗口中画红色框的黑色线条&#xff0c;鼠标放在…...