记一次redis内存没满发生key逐出的情况。

news/2024/12/20 2:03:17/

现象
从监控上看,redis的内存使用率最大是80%,但是发生了key evicted

在这里插入图片描述

分析
原因1、可能是阿里云监控没抓取到内存100%监控数据。
阿里控制台监控监控粒度是5秒。

内存使用率的计算方法。
used_memory_human/maxmemory

原因2、可能是link 内存占用比较大,虽然总内存超过了,maxmemory但是,link内存没统计到内存使用率里。

结合当时业务情况:没有大量数据写入, 有大key访问最大key 4M,hgetall访问。
所以判断,第二种可能性比较大。

解决方案:研发把大key 分散成小key。 比如原来存储了全国的数据,现在改成一个城市一个key。

redis 内存分析。
在这里插入图片描述
Redis总内存 = 链路内存(动态)+ 数据内存+ 管理内存(静态)

链路内存(动态)

主要包括Input Buff、Output Buff、JIT Overhead、Fake Lua Link、Lua执行缓存等,例如可执行INFO命令,通过返回结果的Clients中查看客户端缓存信息。

说明
Input buff与Output buff与每个客户端的连接有关,通常较小。当执行客户端Range类操作或大Key收发较慢时,Input buff与Output buff占用的内存会增大,从而影响数据区,甚至会造成内存溢出OOM(Out Of Memory)。

数据内存

用户数据区,即实际存储的Value信息,通常作为重点分析的对象。

管理内存(静态)

启动时较小且相对恒定,该区域由管理数据的Hash内存开销、Repl-buff与aof-buff的内存开销(约32 MB~64 MB)等构成。
说明
当Key数量特别多时(例如几亿个),会占用较大的内存。

内存使用率突然升高的主要原因如下

  • 短时间内大量写入新数据。
  • 短时间内大量创建新连接。
  • 突发访问产生大量流量超过网络带宽,导致输入缓冲区和输出缓冲区积压。
  • 客户端处理速度跟不上Redis的处理速度,导致输出缓冲区积压。

redis内存解释
https://www.jianshu.com/p/2e75ce35261e

https://help.aliyun.com/zh/redis/user-guide/troubleshoot-the-high-memory-usage-of-an-apsaradb-for-redis-instance?spm=a2c4g.11186623.0.i42


http://www.ppmy.cn/news/1284974.html

相关文章

postman使用-04响应

文章目录 响应响应界面说明Pretty:格式化显示,以便查看Raw:不进行任何处理,显示响应数据的原始格式Preview:预览响应体,会自动换行,不会格式化(有时候是数据,有时候是页面…

node实现对git仓库的管理

一、项目背景 一份代码,发布多个小程序。想让技术支持部通过脚本自己获取代码,并通过脚本自动提交到客户的小程序后台。他们自行发布。 现已注册第三方平台,开发人员通过“开发小程序”上传模板。开发人员把代码上传到模板,支持…

打造完备数据生态,「开放互信、合作共赢」: 拓数派亮相2023龙蜥操作系统大会

拓数派始终持「开放互信,合作共赢」的理念,通过积极建立合作伙伴生态网络、构建生态工具、打造活跃的技术和用户社区等方式,构筑更加完善的数据生态体系,为用户带来更加便捷的使用体验。2023年12月17-18日,由开放原子开…

小红书品牌曝光方式有哪些,小红书投放总结!

辛辛苦苦撰写了笔记,却没有人看。不懂平台的曝光策略,就无法获得预期的营销结果。今天就来分享下小红书品牌曝光方式有哪些,小红书投放总结! 第一招,打造账号IP 在小红书平台进行传播,打造账号IP非常重要。…

Python打包

将 Python 脚本打包成可执行的 .exe 文件,通常可以使用 PyInstaller 这个库来实现。PyInstaller 是一个流行的工具,它可以将 Python 程序和所有相关的依赖打包成一个独立的可执行文件,适用于 Windows、Linux 和 macOS 系统。安装 PyInstaller 首先,需要安装 PyInstaller。…

实战10 角色管理

目录 1、角色后端接口 2、角色列表查询 2.1 效果图 2.2页面原型代码 2.3 角色api代码 role.js 2.4 查询角色列表代码 4、 新增和编辑角色 5、删除角色 6、分配权限 6.1 分配权限思路 6.2 分配权限回显接口 6.3 分配权限回显前端实现 6.4分配权限后端接口 6.4.1 R…

ubuntu:beyond compare 4 This license key has been revoked 解决办法

https://www.cnblogs.com/zhibei/p/12095431.html 错误如图所示: 解决办法: (1)先用find命令找到bcompare所在位置:sudo find /home/ -name *bcompare (2)进入 /home/whf/.config,删除/bco…

隐身之术:深入解析代理模式的神秘力量

一、定义 代理模式(Proxy Pattern)为其他对象提供一种代理以控制对这个对象的访问,属于结构型模式。 二、解决什么问题 主要解决在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于…