[转帖]分析redis 大key
http://www.lishuai.fun/2023/05/05/redis-bigkey/#/%E5%AE%89%E8%A3%85
redis-rdb-tools 是一个 python 的解析 rdb 文件的工具,在分析内存的时候,我们主要用它生成内存快照。
主要有以下三个功能:
- 生成内存快照
- 转储成 json 格式
- 使用标准的 diff 工具比较两个 dump 文件
安装
1 |
pip install rdbtools python-lzf |
rdbtools工具包括了3个可执行文件:
rdb – 解析整个rdb文件
redis-memory-for-key – 解析server里的单个key
redis-profiler –解析rdb文件成html格式
命令help
1、rdb –help:解析整个rdb文件
1 |
usage: rdb [options] /path/to/dump.rdb |
2,redis-memory-for-key –help:– 解析server里指定的单个key
1 |
Usage: redis-memory-for-key [options] redis-key |
3、redis-profiler –help:
1 |
Usage: redis-profiler [options] /path/to/dump.rdb |
使用
每次运行以上工具时都需要指定一个命令,以指示对解析的RDB数据应执行的操作。操作有:
转储的JSON
rdb -c json test-redis.rdb -f test-redis.json
1 |
[root@dev-tools ~]# rdb -c json test-redis.rdb -f test-redis.json |
过滤解析
正则表达式匹配key,并且仅打印键和值:
rdb -c justkeyvals --key "yundt-cube-center-inventory-test.*" test-redis.rdb
1 |
[root@dev-tools ~]# rdb -c justkeyvals --key "yundt-cube-center-inventory-test.*" test-redis.rdb >demo.txt |
生成内存报告
使用-c memory 运行会生成CSV报告,其中包含该键使用的近似内存。–bytes C 和 –largest N 可用于将输出限制为大于C字节的键或N个最大键。
rdb -c memory test-redis.rdb --bytes 128 -f redis-mem.csv
1 |
[root@dev-tools ~]# rdb -c memory test-redis.rdb --bytes 128 -f redis-mem.csv |
生成的CSV具有以下列:
- database:数据库编号
- type:数据类型
- key:键
- size_in_bytes:使用的内存:包括键,值和任何其他开销
- encoding:RDB编码类型
- num_elements:key中的value的个数
- len_largest_element:key中的value的长度
- expiry:过期时间
注意:内存使用情况是近似的。通常,实际使用的内存将略高于报告的内存。可以按键或数据库编号或数据类型过滤报告。内存报告应有助于检测由应用程序逻辑引起的内存泄漏。它还将帮助优化Redis的内存使用。
对key按内存大小排序
1 |
sort -t ',' -k4 -rn redis-mem.csv >redis-mem-sort.csv |
查找单键使用的内存
查找特定键使用的内存(运行整个内存报告非常耗时),使用redis-memory-for-key
1 |
redis-memory-for-key person:1 |
原文作者:Mister Li
原文链接:https://www.lishuai.fun/2023/05/05/redis-bigkey/
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可
[转帖]分析redis 大key的更多相关文章
- Redis 大 key 问题 & 问题分析 & 解决方案
Redis 大 key 问题 & 问题分析 & 解决方案 Redis 什么是 Redis 大 key 单个key 存储的 value 很大 hash, set,zset,list 结构 ...
- Redis大 key的发现与删除方法全解析
个推作为国内第三方推送市场的早期进入者,专注于为开发者提供高效稳定的推送服务,经过9年的积累和发展,服务了包括新浪.滴滴在内的数十万APP.由于我们推送业务对并发量.速度要求很高,为此,我们选择了高性 ...
- Redis大key的发现与删除方法全解析
个推作为国内第三方推送市场的早期进入者,专注于为开发者提供高效稳定的推送服务,经过9年的积累和发展,服务了包括新浪.滴滴在内的数十万APP.由于我们推送业务对并发量.速度要求很高,为此,我们选择了高性 ...
- Redis 大 key 问题总结
多大的 key 算大? 阿里云Redis 最佳实践中提到 合理的 Key 中 Value 的字节大小,推荐小于10 KB.过大的 Value 会引发数据倾斜.热点Key.实例流量或 CPU 性能被占满 ...
- 深度评测丨 GaussDB(for Redis) 大 Key 操作的影响
本文分享自华为云社区<墨天轮评测:GaussDB(for Redis)大Key操作的影响>,作者: 高斯 Redis 官方博客. 在前一篇文章<墨天轮评测:GaussDB(for R ...
- 浅谈Redis大Key与热Key
如何定义大 Key 和 热 Key 如何定义大 Key 如何定义热 Key 大 Key 和 热 Key 产生的原因 大 Key 和 热 Key 有哪些危害 大 Key 的危害 热 Key 的危害 如何 ...
- 统计redis大key信息(前topN)
相关包下载链接 https://github.com/sripathikrishnan/redis-rdb-tools/releaseshttps://pypi.org/project/python- ...
- Redis 的大 Key 对持久化有什么影响?
作者:小林coding 图解计算机基础(操作系统.计算机网络.计算机组成.数据库等)网站:https://xiaolincoding.com 大家好,我是小林. 上周有位读者字节一二面时,被问到:Re ...
- Redis性能瓶颈揭秘:如何优化大key问题?
1. 什么是Redis大key问题 Redis大key问题指的是某个key对应的value值所占的内存空间比较大,导致Redis的性能下降.内存不足.数据不均衡以及主从同步延迟等问题. 到底多大的数据 ...
- redis 删除大key集合的方法
redis大key,这里指的是大的集合数据类型,如(set/hash/list/sorted set),一个key包含很多元素.由于redis是单线程,在删除大key(千万级别的set集合)的时候,或 ...
随机推荐
- 通用 Mapper 的批量插入实现
具体的 SQL 模板实现如下所示: import org.apache.ibatis.mapping.MappedStatement; import tk.mybatis.mapper.MapperE ...
- 开发小技巧 - 合理使用Visual Studio 2022内置任务列表(TODO)
前言 在开发编码过程中经常会因为各种问题而打断自己的思绪和开发计划,可能会导致本来准备开发或者需要测试的功能到要上线的时候才想起来没有做完.这种情况相信很多同学都遇到过,咱们强大的Visual Stu ...
- 在线编辑Word——插入公式
在Word中可插入多种公式,用于满足于不同运算场景需求,从基本的运算符到大型的运算公式,我们可以根据文档内容的编排需要,任意插入所需公式.下面,介绍如何通过在线编辑Word的方式,向Word中插入公式 ...
- JAVA已过气?中俄大佬对话告诉你俄罗斯最受欢迎的编程语言是什么!
摘要:中俄大佬对话:俄罗斯最受欢迎的编程语言是什么?Gitee如何抗住数据压力? 众所周知,Java作为一门非常成熟的语言,国内拥趸者众多,但随着后浪们的崛起,如今的Java在国际上是否还占据主流地位 ...
- JDK1.6在生产环境引起的坑
本文分享自华为云社区<[高并发]记一次JDK1.6在生产环境引起的坑!>,作者: 冰 河 . 最近有朋友遇到一个困惑:他写的程序在测试环境一点问题没有,但是发到生产环境却会频繁出现内存溢出 ...
- 数据库的两个好帮手:pagehack和pg_xlogdump
摘要:pagehack和pg_xlogdump可以帮助我们在数据库故障定位中,解析各种文件的页面头和xlog日志. 随着技术的演进,数据也发生了巨大的变化,数据规模越来愈大.数据种类呈现多样性,数据处 ...
- 华为云GaussDB两大数据库通过中国信通院多项评测
摘要:权威认可!华为云GaussDB两大数据库通过中国信通院多项评测. 本文分享自华为云社区<官宣!华为云GaussDB两大数据库通过中国信通院多项评测>,作者: GaussDB 数据库 ...
- Solon Web 开发,三、打包与运行
Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...
- 性能提升-如何设置Windows操作系统TIME_WAIT状态的TCP连接快速回收时间?
大规模Windows环境下,采用Nginx反向代理服务后,操作系统会产生较多TIME_WAIT的TCP(Transmission Control Protocol)连接,操作系统默认TIME_WAIT ...
- PPT 常规设置
高级设置 可以将撤销次数调大,最多 150次 默认拉到PPT中的图片是被压缩的,可以设置成不压缩(解压 PPT 可查看里面的图片大小) 字体嵌入 可将自动保存时间调短,默认保存目录我习惯先保存到桌面( ...