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. 案例解读华为隐私计算产品TICS如何实现城市跨部门数据隐私计算

    摘要:本文介绍华为可信智能计算服务TICs是如何助力城市跨部门数据实现隐私计算的. 本文分享自华为云社区<基于华为隐私计算产品TICS实现城市跨部门数据隐私计算,助力实现普惠金融>,作者: ...

  2. 聊聊LiteOS事件模块的结构体、初始化及常用操作

    摘要:本文通过分析LiteOS事件模块的源码,深入掌握事件的使用. 事件(Event)是一种任务间通信的机制,可用于任务间的同步.多任务环境下,任务之间往往需要同步操作,一个等待即是一个同步.事件可以 ...

  3. 带你探索CPU调度的奥秘

    摘要:本文将会从最基础的调度算法说起,逐个分析各种主流调度算法的原理,带大家一起探索CPU调度的奥秘. 本文分享自华为云社区<探索CPU的调度原理>,作者:元闰子. 前言 软件工程师们总习 ...

  4. CANN 5.0黑科技解密 | 算力虚拟化,让AI算力“物尽其用”

    摘要:算力虚拟化技术对消费者而言,可有效降低算力的使用成本,对于设备商或运营商而言,则可极大提升算力资源的利用率,降低设备运营成本. 为什么要做算力虚拟化 近年来,人工智能领域呈井喷式发展,算力就是生 ...

  5. 从“13 天”到“0 天”延时,揭秘火山引擎 DataLeap SLA 保障最佳实践

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在数据治理中,如何实现 SLA 保障一直是"老大难"问题. 随着某房产 APP 稳定发展,楼盘 ...

  6. Mac下安装mysqlclient出错解决「mysql_config not found」

    错误信息如下图 解决方法 安装mysql-client brew install mysql-client 设置环境变量 export PATH=$PATH:/usr/local/Cellar/mys ...

  7. 【docker】运维相关名词 Iaas-Paas和Saas docker镜像设置 启动与停止常用命令 镜像相关命令 容器相关命令

    目录 上节回顾 今日内容 1 什么是Iaas-Paas和Saas 2 docker 启动设置镜像 2.1 启动与停止常用命令 3 镜像相关命令 4 容器相关命令 练习 上节回顾 # 1 flask-s ...

  8. Mongodb--索引(转载)

    原文转载自:https://www.cnblogs.com/wyy1234/p/11032163.html 1 mongoDB索引的管理 本节介绍mongoDB中的索引,熟悉mysql/sqlserv ...

  9. WCF 动态调用 动态代理

    关键词:WCF动态调用.动态调用WCF.WCF使用动态代理精简代码架构.使用反射执行WCF接口 代码地址: https://gitee.com/s0611163/DynamicWCF https:// ...

  10. django动态创建表和动态选择实体

    开发有时需要动态创建表,创建完成后需要动态选择model对应的表,该需求如何实现 1.model层   TestBlock为了动态创建表.getBlockModel为了动态选择表 from djang ...