线上监控显示,三主三从得redis中有一主一从的内存使用率明显高于其他机器,怀疑存在bigkey
步骤:
- 从库登录redis执行bgsave 可以通过ps -ef | grep bgsave 查看进程
- 压缩文件 zip /tmp/rdb.zip dump-6379.rdb
- 拷贝文件至测试机,原机器/data/python-3.5.2/bin/python3 -m http.server
- 测试机限速下载 wget --limit-rate=30m hostname:8000/rdb.zip
- 测试机解压文件 unzip rdb.zip(9.5G)
- 安装工具(安装后(容易被墙挡住,注意越过) 拷贝可执行文件)
安装go:
wget https://studygolang.com/dl/golang/go1.12.1.linux-amd64.tar.gz
tar -zxvf go1.12.1.linux-amd64.tar.gz
vim /etc/profile
export GOROOT=/tmp/yl/go
export GOPATH=/tmp/yl/gocode
export PATH= P A T H : PATH: PATH:GOROOT/bin:$GOPATH/bin
安装rdb_bigkeys
cd gocode/
yum -y install git
git clone https://github.com/weiyanwei412/rdb_bigkeys.git
mv rdb_bigkeys/ /tmp/yl/gocodesrc/
cd rdb_bigkeys/
go get
go build
将会生成可执行文件rdb_bigkeys
7.使用工具扫描rdb文件
./rdb_bigkeys --bytes 1024 --file /tmp/tmp/bigkeys.csv --sep 0 --sorted --threads 4 /tmp/tmp/dump-6379.rdb
显示:
database,type,key,size_in_bytes,num_elements,largest_element,largest_element_size_in_bytes,expire_datetime
0,hash,key_name1,5475219908,25708171,581227865354272768,282,
字节计算网址
https://calc.itzmx.com/
redis命令查询网址
https://www.redis.net.cn/tutorial/3509.html
其他rdb工具
pip install rdbtools
导出所有的key
rdb -c json dump-6389.rdb -f ./rdb.csv