介绍

阿里云redis内存使用持续飙升,需要分析下内存使用情况,有发现redis-rdb-tools,支持对rdb文件分析,主要功能有:

  • Generate a Memory Report of your data across all databases and keys
  • Convert dump files to JSON
  • Compare two dump files using standard diff tools

实现

安装

[root@xxx redis]# pip install rdbtools python-lzf
[root@xxx redis]# git clone https://github.com/sripathikrishnan/redis-rdb-tools
[root@xxx redis]# cd redis-rdb-tools
[root@xxx redis]# python setup.py install

参数说明

[root@xxx redis]# rdb --help
Usage: rdb [options] /path/to/dump.rdbExample : rdb --command json -k "user.*" /var/redis/6379/dump.rdbOptions:-h, --help            show this help message and exit-c FILE, --command=FILECommand to execute. Valid commands are json, diff,justkeys, justkeyvals, memory and protocol-f FILE, --file=FILE  Output file-n DBS, --db=DBS      Database Number. Multiple databases can be provided.If not specified, all databases will be included.-k KEYS, --key=KEYS   Keys to export. This can be a regular expression-o NOT_KEYS, --not-key=NOT_KEYSKeys Not to export. This can be a regular expression-t TYPES, --type=TYPESData types to include. Possible values are string,hash, set, sortedset, list. Multiple typees can beprovided.                      If not specified, alldata types will be returned-b BYTES, --bytes=BYTESLimit memory output to keys greater to or equal tothis value (in bytes)-l LARGEST, --largest=LARGESTLimit memory output to only the top N keys (by size)-e ESCAPE, --escape=ESCAPEEscape strings to encoding: raw (default), print,utf8, or base64.

生成csv报告

生成报表字段有database(key在redis的db)、type(key类型)、key(key值)、size_in_bytes(key的内存大小)、encoding(value的存储编码形式)、num_elements(key中的value的个数)、len_largest_element(key中的value的长度),可以创建个表的导入到关系型库用SQL语句分析。

[root@xxx redis]# rdb -c memory hins3537653_data_20180427002229.rdb > memory.csv
mysql> CREATE TABLE `redis_memory` (-> id int NOT NULL PRIMARY KEY,->   `database` int(128) DEFAULT NULL comment 'key在redis的db',->   `type` varchar(128) DEFAULT NULL comment 'key类型',->   `key` varchar(128) UNIQUE KEY comment 'key值',->   `size_in_bytes` bigint(20) DEFAULT NULL comment 'key的内存大小',->   `encoding` varchar(128) DEFAULT NULL comment 'value的存储编码形式',->   `num_elements` bigint(20) DEFAULT NULL comment 'key中的value的个数',->   `len_largest_element` varchar(128) DEFAULT NULL comment 'key中的value的长度'-> );

解析指定key

[root@xxx redis]# rdb --command justkeyvals --key "02796f8159cabac4*" /mnt/redis/hins3537653_data_20180427002229.rdb 

解析特定字符打头指定类型的key

[root@xxx  redis]# rdb -c json --db 0 --type string --key "02796f8159cabac4*" /mnt/redis/hins3537653_data_20180427002229.rdb 

根据使用内存大小排序

-n是按照数字大小排序,-r是以相反顺序,-k是指定需要爱排序的栏位,-t指定栏位分隔符为冒号

[root@xxx redis]# sort -t, -k4nr memory.csv

总结

现在是手动实现,可以调用阿里云API实现自动采集和分析后入库,前端接入grafana展示,实现对redis数据使用的监控系统化,同时接入钉钉机器人报警主动推送给业务组优化(后续更新)。

参照

redis-rdb-tools
使用rdbtools工具来解析redis dump.rdb文件及内存使用量

使用rdbtools分析redis内存使用相关推荐

  1. redis内存分析工具rdbtools

    当Redis的内存已经快满的时候,我们能做什么呢? 最直接的方法就是分析一下Redis内存的构成,看是哪些键比较大,或者比较多,然后考虑一下对应的功能能不能优化,例如减少超时时间,例如不必要的数据不用 ...

  2. 内存分析_Redis内存爆炸增长?你需要知道这一套Redis内存分析方法

    Redis Redis介绍 NoSQL Redis是当前比较热门的NOSQL数据库之一,和Memcache一样,数据都是缓存在计算机内存中.完全开源免费,遵守BSD协议,是一个高性能的key-valu ...

  3. Redis 内存分析神器

    RDR 简介 RDR 是解析 redis rdbfile 工具.与redis-rdb-tools相比,RDR 是由golang 实现的,速度更快(5GB rdbfile 在我的PC上大约需要2分钟). ...

  4. Redis内存分析工具

    2019独角兽企业重金招聘Python工程师标准>>> RdbTools是一个由于分析Redis dump.rdb文件的工具,有以下功能: 生成所有数据库和key的内存分析报告 把d ...

  5. 使用rdbtools工具分析redis备份RDB文件

    要分析redis的备份RDB文件,rdbtools是首选 安装rdbtools 先看下本机有没有装rdb whereis rdb 没有安装的话就要开始安装了,为因rdbtool是由python写的,所 ...

  6. Redis内存空间简单分析

    背景 最近发现项目中用的 redis 内存消耗很大(但是印象中却以为没有这么多的key的内存消耗才对呀?),使用 info 命令可以看到所有key占用的一些内存大小以及key的数量等等,如下图所示(只 ...

  7. golang 编写的在线redis 内存分析工具 rma4go

    redis 内存分析工具 rma4go redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个redis的 ...

  8. redis 内存分析工具 `rma4go`

    redis 内存分析工具 rma4go redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个redis的 ...

  9. 一个golang编写的redis内存分析工具rma4go

    redis 内存分析工具 rma4go 简介 redis是一个很有名的内存型数据库,这里不做详细介绍.而rma4go (redis memory analyzer for golang) 是一个red ...

最新文章

  1. JS放在博客里面运行
  2. Oracle 11g安装图文攻略
  3. android布局边缘加深,Android布局属性详解
  4. html5 dom api,HTML5 DOM File API
  5. 学术研究 | 仅仅因为方法 Too Simple 就被拒稿,合理吗?
  6. ENVI 5.6安装教程及安装包下载
  7. java jemalloc_jemalloc 快速上手攻略
  8. python小数乘法计算题_100道小数乘法计算题
  9. HTML计算平均成绩,成绩平均分怎么算
  10. 计算机无法访问家庭组内打印机,Win7电脑无法连接共享打印机拒绝访问怎么办...
  11. 全球及中国军用海岸雷达行业研究及十四五规划分析报告
  12. 快速部署OpenStack的操作笔记(珍藏版)
  13. python开发前景如何
  14. STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁
  15. 【Tool工具】LICEcap 推荐 GIf录制工作- 如何简单录制一个gif(Mac Window都可)
  16. win7 文件夹工具栏
  17. 对vue生命周期的深入理解
  18. Xilinx_RAM_IP核的使用
  19. 1000以内完数、100以内质数 java
  20. (附源码)php在线考试系统 毕业设计 032028

热门文章

  1. Go语言详细介绍:logo和版本
  2. (九)企业分布式微服务云SpringCloud SpringBoot mybatis-服务链路追踪(Spring Cloud Sleuth)...
  3. Linux运维之--zabbix使用(实时更新)
  4. 如何设置xshell代理?
  5. Mac之初~10个快速上手技巧
  6. 衡量视频序列特性的TI(时间信息)和SI(空间信息)
  7. 移劢开发者解决方案研究报告——中国开发者生存状况调查
  8. 【EXLIBRIS】图洛克《收入再分配的经济学》中译本序 【ZZ】
  9. 程序员必修课--sql思维举重训练
  10. struts2(2012/2/24)