84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
我redis里配置了db0、db1、db2、db3四个库,我想看每个库分别占用的大小应该怎么办? 另外jedis里有什么方法可以用吗?
走同样的路,发现不同的人生
redis 貌似没有提供一个可靠的方法获得每个 db 的实际占用,这主要是因为 redis 本身就没有 db 文件概念,所有 db 都是混在一个 rdb 文件里面的。
要想估算 db 的大小,需要通过 keys * 遍历 db 里所有的 key,然后用 debug object <key> 来获得 key 的内存占用,serializedlength 就是占用内存的字段长度。
keys *
debug object <key>
serializedlength
根据 RDB 格式文档,可以估算出每个 key 的实际占用为:
key_size = strlen(key) + serializedlength + 7
不过这个估算极不靠谱,因为 redis 可能将 key 做压缩,此时估算出来的值可能偏大。
下面的命令可以查看 db0 的大小(key 个数),其他的以此类推。
db0
select 0 dbsize
或者使用 info keyspace 同时得到所有 db 信息。
info keyspace
redis 貌似没有提供一个可靠的方法获得每个 db 的实际占用,这主要是因为 redis 本身就没有 db 文件概念,所有 db 都是混在一个 rdb 文件里面的。
要想估算 db 的大小,需要通过
keys *
遍历 db 里所有的 key,然后用debug object <key>
来获得 key 的内存占用,serializedlength
就是占用内存的字段长度。根据 RDB 格式文档,可以估算出每个 key 的实际占用为:
不过这个估算极不靠谱,因为 redis 可能将 key 做压缩,此时估算出来的值可能偏大。
下面的命令可以查看
db0
的大小(key 个数),其他的以此类推。或者使用
info keyspace
同时得到所有 db 信息。