Redis工具之redis_rdb_tools

  redis_rdb_tools工具的介绍:

解析redis的dump.rdb文件,分析内存,以JSON格式导出数据。|
提供的功能有:
  1. 生成内存报告
  2. 转储文件到JSON
  3. 使用标准的diff工具比较两个dump文件

Rdbtools是以python语言开发的。

一)安装

  1, pypi安装(推荐)

pip3 install rdbtools

  2,源码安装

1# wget https://github.com/sripathikrishnan/redis-rdb-tools/archive/master.zip 2# unzip master 3# cd redis-rdb-tools-master/ 4# python3 setup.py install 5Downloading/unpacking rdbtools 6 Downloading rdbtools-0.1.5.tar.gz 7 Running setup.py egg_info for package rdbtools 8 9 warning: no files found matching 'README.textile' 10Installing collected packages: rdbtools 11 Running setup.py install for rdbtools 12 13 warning: no files found matching 'README.textile' 14 Installing redis-memory-for-key script to /usr/local/python/bin 15 Installing redis-profiler script to /usr/local/python/bin 16 Installing rdb script to /usr/local/python/bin 17Successfully installed rdbtools 18Cleaning up...

二) dump文件数据转换

1rdb --help 2Usage: rdb [options] /path/to/dump.rdb 3 4Example : rdb --command json -k "user.*" /var/redis/6379/dump.rdb 5 6Options: 7 -h, --help show this help message and exit 8 -c FILE, --command=FILE 9 Command to execute. Valid commands are json, diff, 10 justkeys, justkeyvals, memory and protocol 11 -f FILE, --file=FILE Output file 12 -n DBS, --db=DBS Database Number. Multiple databases can be provided. 13 If not specified, all databases will be included. 14 -k KEYS, --key=KEYS Keys to export. This can be a regular expression 15 -o NOT_KEYS, --not-key=NOT_KEYS 16 Keys Not to export. This can be a regular expression 17 -t TYPES, --type=TYPES 18 Data types to include. Possible values are string, 19 hash, set, sortedset, list. Multiple typees can be 20 provided. If not specified, all 21 data types will be returned 22 -b BYTES, --bytes=BYTES 23 Limit memory output to keys greater to or equal to 24 this value (in bytes) 25 -l LARGEST, --largest=LARGEST 26 Limit memory output to only the top N keys (by size) 27 -e ESCAPE, --escape=ESCAPE 28 Escape strings to encoding: raw (default), print, 29 utf8, or base64.

  1. 解析dump文件并以json格式标准输出

rdb --command json dump.rdb

  2. 只解析符合正则的keys

rdb --command json --key "key1.*" dump.rdb

  3. 只解析一a开头的hash且位于2号库

rdb --command json --db 2 --type hash --key "a.*" dump.rdb

三)生成内存报告

生成CSV格式的内存报告。包含的列有:数据库ID,数据类型,key,内存使用量(byte),编码。内存使用量包含key、value和其他值。
注意:内存使用量是近似的。在一般情况下,略低于实际值。
可以根据key或数据库ID或数据类型对报告的内容进行过滤。

内存报告有助于检测是否是应用程序逻辑导致的内存泄露,也有助于优化reids内存使用情况。

rdb -c memory dump.rdb > redis_memory_report.csv

四)单个key使用内存量

有时候,需要查询某个key所使用的内存。如果全部导出来在查找将是很愚蠢且耗时的。对于这种情景,可以使用redis-memory-for-key命令。
如果出现下面信息,需要安装redis模块。redis-memory-for-key依赖redis-py包。

  1.安装

1pip3 install redis 2 3redis-memory-for-key 4Usage: redis-memory-for-key [options] redis-key 5Examples : 6redis-memory-for-key user:13423 7redis-memory-for-key -s localhost -p 6379 user:13423 8 9 10redis-memory-for-key: error: Key not specified

  2.使用

redis-memory-for-key -s 127.0.0.1 key1

五)比较rdb文件

1rdb --command diff dump.rdb | sort > dump1.txt 2rdb --command diff dump.rdb | sort > dump2.txt 3 4diff dump1.txt dump2.txt
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

swap空间的增减方法

(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593