前言
提起redis,头脑中立马浮现,Redis (remote dictionary server)Redis 是一个开源的,存储 键值(key-Valus)数据库 ,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。日常工作中,缓存可能是我们使用最多的场景,集成redis到系统运行一段时间后,内存持续上涨(内存比起硬盘是宝贵的资源),有没想过,redis到底储存了一些什么数据,使用的是否合理?这就需要我们进行分析下,才能更好的优化,释放更多的内存
RDR工具
RDR 是解析 redis rdbfile 工具。与redis-rdb-tools相比,RDR 是由golang 实现的,速度更快。
- 分析 Redis 内存中那个 Key 值占用的内存最多
- 分析出 Redis 内存中那一类开头的 Key 占用最多,有利于内存优化
- Redis Key 值以 Dashboard 展示,这样更直观
下载地址
工具权限添加
js
# 工具下载好以后,可能需要添加可执行权限,此示例以linux平台操作
# 看个人喜欢,我比较喜欢下载下来,修改下名称,方便操作
mv rdr-linux rdr
# 赋值可执行权限
chmod a+x ./rdr*
使用方法描述
shell
./rdr -h
NAME:
rdr - a tool to parse redis rdbfile
USAGE:
rdr [global options] command [command options] [arguments...]
VERSION:
v0.0.1
COMMANDS:
dump dump statistical information of rdbfile to STDOUT
show show statistical information of rdbfile by webpage
keys get all keys from rdbfile
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
统计rdbfile并输出
如果全量分析,可以用此方式
命令描述
js
NAME:
rdr dump - dump statistical information of rdbfile to STDOUT
USAGE:
rdr dump FILE1 [FILE2] [FILE3]...
例子:
js
# 此方式是输入到命令窗口,如果数据量太大,查看不全
./rdr dump dump.rdb
# 推荐 把输出指向一个resulst.txt,然后打开result.txt查看
./rdr dump dump.rdb >result.txt
结果
统计rdbfile所有的key
命令描述 获取rdbfile所有存储的key
js
./rdr dump -h
NAME:
rdr dump - dump statistical information of rdbfile to STDOUT
USAGE:
rdr dump FILE1 [FILE2] [FILE3]...
[root@dev4 redis]# ./rdr keys -h
NAME:
rdr keys - get all keys from rdbfile
USAGE:
rdr keys FILE1 [FILE2] [FILE3]...
例子
js
# 直接输出到命令窗口,不好看
./rdr keys dump.rdb
# 推荐 输出结果指向一个文件,然后查看
./rdr keys dump.rdb > result.txt
结果
展示的部分结果
通过web页面,展示rdbfile 统计信息
推荐这种,因为有界面,清晰可见
命令描述
js
./rdr show -h
NAME:
rdr show - show statistical information of rdbfile by webpage
USAGE:
rdr show [command options] FILE1 [FILE2] [FILE3]...
OPTIONS:
--port value, -p value Port for rdr to listen (default: 8080)
示例
js
# -p 指定端口号,如果不指定,默认是8080
./rdr show -p 8088 dump.rdb
start parsing...
parse dump.rdb done
# 看到这信息,说明已经rdbfile分析完成,通过ip+端口直接访问
parsing finished, please access http://{$IP}:8088
结果
总结
上面展示了工作的三种用法,推荐web页面展示这种方法使用,比较清晰,看起来也方便。通过这种工具,我们就能分析redis的使用情况,以及对不合理的使用,进行优化,减少内存的使用,释放更多的资源。
写作不易,如果刚好你有需要,此文对你有帮助,麻烦点赞评论收藏,谢谢。