Home  >  Article  >  Backend Development  >  redis里怎么知道key的value大小?或者按照value的大小排序?

redis里怎么知道key的value大小?或者按照value的大小排序?

WBOY
WBOYOriginal
2016-06-06 20:44:103198browse

现在偶尔会发现redis里有些key的值有几十MB,这是不正常的数据,有没有办法按value大小排序列出大于10MB所有key?

回复内容:

现在偶尔会发现redis里有些key的值有几十MB,这是不正常的数据,有没有办法按value大小排序列出大于10MB所有key?

帮你找了一个工具,经测试可用:https://github.com/sripathikrishnan/redis-rdb-tools#generate-memory-report

安装和使用方法文档上写了,如果安装完成找不到rdb命令的话,直接在安装目录下执行也可以:

<code>rdbtools/cli/rdb.py -c memory /path/to/your/dump.rdb > result.csv
</code>
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的文件路径。对于数据量太大的情况我没测试过,分析估计会比较慢。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn