Redis-rdb-tools与rdr工具学习与使用


简要说明

  • rdb工具是python写的一套工具,可以分析dump文件,获取key等信息.
  • rdb其实有一套rdb-profiler工具, 能够导出为html文件,但是发现已经太久了已经无法解析了.
  • rdr 工具是雪球开源的一套简易的redis dump文件分析工具, 能够简要进行展示较大值的key
  • rdr 的命令简单,但是今天发现他的数据值并不是非常精确.这里也总结一下,放在最后面.

rdb 工具简要说明

  • 安装
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
# 安装必须的部分组件
# 注意 我选用了之前离线安装python3以及pip的目录. 可以直接使用相对路径进行安装和处理
cd /opt/python3/bin
./pip install rdbtools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 注意编译好了 再其他环境上可以复制整个python3的目录.用来使用.
  • 这边引用一下之前写过的内容
https://mp.weixin.qq.com/s?__biz=MzU2MTA2MzQyNw==&mid=2247484342&idx=1&sn=a82bcff79faabf6ed308717bb46544f5&chksm=fc7f30dacb08b9cc7d19ec7ed7b03bde3cb52cd8bf5cb07bb68b4acab5a2b7576a238ead90dd&token=55803608&lang=zh_CN#rd

  • 简单使用-获取redis的dump文件
第一步修改获取python3 刚才的文件夹 解压缩到 /opt/ 目录下面
第二步修改环境变量 echo 'PATH=$PATH:/opt/python3/bin/' > /etc/profile.d/python3.sh
第三步是环境变量生效: source /etc/profile.d/python3.sh
第四步生成redis的数据文件:
redis-cli
config get dbfilename
config get dir
# 获取相关的目录文件
save
# 或者使用bgsave
# 注意bgsave 不会阻断当前进程, 但是会fork 一个同样redis使用内存的进程来保存.

  • 简单使用-简单分析以及命令
# 分析出来所有的键值对信息
rdb -c memory /dump.rdb -f /redis.txt
# 分析不同类型键值对的数量
cat /redis.txt |awk -F "," '{print $2}' |sort |uniq -c |sort -k1hr
# 最大的十个values对应的key以及类型 大小KB
cat /redis.txt |awk -F "," '{print $4/1024" "$2" "$3 }' |sort -k1hr |head -n 10
  • 这里其实还有一个命令可以分析一下 client的简直对信息
redis-cli client list |awk '{print $18}' |sort |uniq -c |sort -k1hr

第二部分简单写一下 rdr

rdr的简单使用


简单说明

  • rdr 全名 redis database reveal
  • 是雪球在github开源的一个redis数据库分析软件.
  • 操作方法时通过redis的dump.rdb文件解析出来键值对的多少以及分布.

获取

  • 下载地址为:https://github.com/xueqiu/rdr
  • 下载非常简单. 直接后去即可.
  • 我这边将 rdr-linux 放置到了/usr/bin目录下并且改名为/rdr 增加执行权限就完成安装.

redis 获取 dump文件

  • rdr工具解析的是redis的dump文件.
  • redis的dump文件可以通过save字段进行处理, 也可以手工获取.
  • 我这边为了性能都是不允许保存的获取dump文件的方式为
redis-cli
save
# 获取保存目录和名字的方法
config get dir
config get dbfilename
# 如果记不住可以使用 config get * 来过滤查看.

简要分析

  • 执行分析的命令很简单

    rdr show -p 8888 /dump.rdb
  • 然后打开网页就可以查看

redis 的stat 命令

  • rdr 解析的是key values 等的信息
  • stat 命令可以查看链接等信息.
redis-cli --stat -i 3
# 注意这个命令是通过陈老师那边获取到的
可以查看内存 连接数 以及请求数量 -i 指代刷新时间 单位为秒数
可以比较简单的查看应用启动过程中的连接内存数据.
也可以看到key value值的数目.
rdr 是进行键值对分析的 stat 是实时分析用的.

Redis-rdb-tools与rdr工具学习与使用的更多相关文章

  1. 使用rdbtools工具来解析redis rdb文件

    工欲善其事必先利其器,日常工作中,好的工具能够高效的协助我们工作:今天介绍一款用来解析redis rdb文件的工具,非常好用.会之,受用无穷! 一.rdbtools工具介绍 源码地址:https:// ...

  2. Git版本控制工具学习

    Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. ...

  3. 深入剖析 redis RDB 持久化策略

    简介 redis 持久化 RDB.AOF redis 提供两种持久化方式:RDB 和 AOF.redis 允许两者结合,也允许两者同时关闭. RDB 可以定时备份内存中的数据集.服务器启动的时候,可以 ...

  4. sql server 内置ETL工具学习(一) BCP篇

    sql server 内置ETL工具学习 常用的导入方式:bcp, BULK INSERT,OPENROWSET和 SSIS. BCP BCP全称BULK COPY PROGRAM 有以下特点: 命令 ...

  5. Redis Desktop Manager桌面管理工具

    Redis Desktop Manager桌面管理工具,方便管理我们放在redis中的各个缓存 及16个数据库 http://redisdesktop.com/download

  6. 2. Packet crafting tools (封包工具 6个)

    2. Packet crafting tools (封包工具 6个) NetcatHping这个方便小巧的实用程序组装并发送定制的ICMP,UDP或TCP数据包,然后显示任何回复. 它受到ping命令 ...

  7. linux 工具学习网站

    推荐一个很不错的linux工具学习网站; 对于一个开发人员来说,我觉得掌握这些工具对于基于linux的应用开发来说事半功倍. http://linuxtools-rst.readthedocs.io/ ...

  8. [原创]Jmeter工具学习思维导图

    [原创]Jmeter工具学习思维导图

  9. [转] 用协议分析工具学习TCP/IP

    一.前言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天.目前号称搞网的 ...

  10. Redis RDB文件

    [Redis RDB文件] 1.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). RDB 的优点 RDB 是一个非常紧凑(compact)的 ...

随机推荐

  1. 千年荒漠变绿洲,看沙漠“卫士”携手昇腾AI植起绿色希望

    摘要:风沙肆虐,沙漠侵蚀神州大地,华东师范大学基于昇腾AI基础软硬件平台研制的种树机器人成为沙漠"卫士",穿越戈壁,跨越千里,为荒漠治理贡献力量!华师大携手昇腾AI共同植起绿色希望 ...

  2. 什么是MircoPython?

    摘要:互联网玩家为了让Python这样的容易学,简单易学.社区API丰富的语言可以在嵌入式领域用上,逐渐开始了一轮Python上嵌入式的迁移,这样就有了今天的主角--MircoPython. 本文分享 ...

  3. 火山引擎 DataLeap 下 Notebook 系列文章三:架构升级详解

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当使用 Notebook 的项目日渐增加时,火山引擎 DataLeap 研发团队发现运行中的 PaaS 服务实在太 ...

  4. 火山引擎 DataTester:一个 A/B 测试,将一款游戏的核心收益提升了 8%

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着社会节奏及生活方式的改变,休闲游戏在移动游戏市场的占比逐渐升高,据伽马数据发布的<2022 年休闲游戏发 ...

  5. 拒绝了对对象 ‘GetTips‘ (数据库 ‘vipsoft‘,架构 ‘dbo‘)的 EXECUTE 权限

    SQL Server 2016 安装 数据库-属性-权限-选择用户或角色-勾选执行权限即可.

  6. Codeforces Round 913 (Div. 3)

    CF1907总结 A. Rook 题面翻译 给出车在国际象棋棋盘中的位置,输出其可到达的坐标(不必在意顺序). 车可以横着或竖着走任意格数. 分析 题意明了,输出车所在行和列所有格子的序号(除车所在位 ...

  7. SE54视图簇

    一.创建关联表 头表 行表 设置行表的外键  创建两张表的表维护生成器,此处不再展开 二.SE54视图簇 激活上述 三.创建事务代码维护 四.效果展示 定期更文,欢迎关注 TRANSLATE with ...

  8. kill 进程时遇到的一件有意思的事情

    案例现象 一般来讲,我们在 kill 掉一个进程的时候通常有两个选择: 找到进程的 pid 号,然后执行 kill 命令 找到进程的名字,然后执行 pkill 命令 pkill 和 kill 命令都是 ...

  9. Mina Tcp服务器开发

    因项目架构需求,需要开发一个Mina Tcp服务器.我的Mina服务器是Java winForm,这与在web项目使用会有少许不同. 1.Maven依赖 <dependency> < ...

  10. Java 设计模式课堂作业记录

    第二章 P25,有人将面向对象设计原则简单归类为 3 条:①封装变化点: ②对接口进行编程: ③多使用组合,而不是继承.请查阅相关资料谈谈理解 3.7 : 该三大原则 应该算 是OO的基础,很多OO设 ...