排查Redis大Key工具安装使用

1、简介

rdb_bigkeys,这是用go写的一款工具,分析rdb文件,找出文件中的大key,实测发现,不管执行时间还是准确度都是很高的,一个3G左右的rdb文件,执行完大概两三分钟,直接导出到csv文件,方便查看,比较推荐使用该工具去查找大key。

下方简介摘抄来自官网的README.md:

线上遇到redis CPU高与网卡带宽跑满的情况, 很明显的bigkey问题, 但使用一个开源的以python编写的redis RDB分析工具来分析big key, 分析
150MB的RDB文件花了一个小时, 这太慢了, 因此使用go重新写了个分析RDB文件来找出big key的工具rdb_bigkeys
速度很快, 同样分析150MB的RDB文件, 只要1分2秒。

rdb_bigkeys

生成的bigkey报告为CSV格式:

rdb_bigkeys_mem

使用很简单,全部就下面提到的5个参数:
    ./rdb_bigkeys --bytes 1024 --file bigkeys_6379.csv --sep 0 --sorted --threads 4 dump6379.rdb
	上述命令分析dump6379.rdb文件中大于1024bytes的KEY, 由大到小排好序, 以CSV格式把结果输出到bigkeys_6379.csv的文件中

2、Golang安装

image-20220410183932000.png

此工具是百分百golang所写,因此使用需要安装go环境

2.1、wegt 安装

#wegt 在线安装命令
wget https://dl.google.com/go/go1.12.6.linux-amd64.tar.gz

image-20220410184501734.png

2.2、 解压.tar.gz

#解压命令:
tar -zvxf go1.12.6.linux-amd64.tar.gz

2.3、验证是否安装成功

#验证安装是否成功
go version

image-20220410191532235.png

2.4、配置PATH变量

2.4.1、使用pwd 拷贝路径

image-20220410190302528.png

2.4.2、vim profile文件

2.4.2.1、在/etc/profile 文件末尾添加以下变量,然后ESC键,wq退出:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
# 启用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.io
2.4.2.2、刷新环境变量配置文件
source /etc/profile
2.4.2.3、go env

image-20220410191618876.png

go env

在任意路径输入显示版本号即配置成功:

go version

3、rdb_bigkeys 安装

3.1、git命令克隆项目

git clone https://github.com/weiyanwei412/rdb_bigkeys.git

image-20220410191658180.png

拉取项目完成cd进入此目录

image-20220410191749854.png

3.2、生成rdb_bigkeys可执行文件

# 远程拉取或更新代码包及其依赖包,并自动完成编译和安装
go get
# 生成rdb_bigkeys可执行文件
go build

image-20220410192108462.png

绿色文件执行go 命令之后生成的可执行文件

3.3、使用rdb_bigkeys工具生成csv文件命令

./rdb_bigkeys --bytes 1024 --file bigkeys_1024.csv --sep 0 --sorted --threads 4 /data/zl_data/redis/dump.rdb

image-20220410192457777.png

3.4、csv文件

image-20220410192711380.png

3.5、打开bigkeys_1024.csv文件,如下

20201016144734649.png