redis里怎么知道key的value大小?或者按照value的大小排序?
程序员文章站
2022-06-08 21:34:58
...
现在偶尔会发现redis里有些key的值有几十MB,这是不正常的数据,有没有办法按value大小排序列出大于10MB所有key?
回复内容:
现在偶尔会发现redis里有些key的值有几十MB,这是不正常的数据,有没有办法按value大小排序列出大于10MB所有key?
帮你找了一个工具,经测试可用:https://github.com/sripathikrishnan/redis-rdb-tools#generate-memory-report
安装和使用方法文档上写了,如果安装完成找不到rdb命令的话,直接在安装目录下执行也可以:
rdbtools/cli/rdb.py -c memory /path/to/your/dump.rdb > result.csv
database | type | key | size_in_bytes | encoding | num_elements | len_largest_element |
---|---|---|---|---|---|---|
0 | string | "cccc" | 98 | string | 4 | 4 |
0 | string | "bbb" | 96 | string | 3 | 3 |
0 | hash | "user" | 102 | ziplist | 1 | 6 |
0 | string | "aa" | 94 | string | 2 | 2 |
结果列中的sizeinbytes就是你要的大小,导出后自己排下序就可以了。另外,注意修改你自己dump.rdb的文件路径。对于数据量太大的情况我没测试过,分析估计会比较慢。