redis - 查找大key
前言
redis 是单线程运行,如果 key 过大,会对整个 redis 相应时间对造成影响。
查找大 key
1、通过 rdb 文件分析,在 github 上有一个分析 rdb 文件的开源软件 rdr,Go 语言写的,通过这个离线分析可以减少对生产环境造成影响。(推荐)
2、redis-cli 原生自带的–bigkeys 的查找大 key 的分析,可以找到某个实例 5 种数据类型(String、hash、list、set、zset)的最大 key。
3、redis-cli 命令有一个 debug object 的命令,可以获取 key 在内存中序列化后的大小,可以通过 scan 方法查找 key,然后 debug object 分析 key。不推荐这个,如果 key 很多,要统计很久。
rdr 分析
https://github.com/xueqiu/rdr
作者没有发布二进制文件,需要安装一个 Go 的编译器。
go install https://github.com/xueqiu/rdr
编译完就 rdr 一个文件可以直接运行
./rdr
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
例子
将 rdb 文件拷贝当前目录,直接运行 rdr 文件进行分析,分析完以后,会监听 8080 端口,通过浏览器就可以直接访问查看结果
./rdr show -p 8080 *.rdb
- 原文作者:Linux运维菜
- 原文链接:https://www.opcai.top/post/2018/2018-12/redis_big_key/
- 版权声明:本作品采用进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。