redis分好库之后怎么才能看每个库的大小呢?

 广东神秘地址 发布于 2022-10-25 01:41

我redis里配置了db0、db1、db2、db3四个库,我想看每个库分别占用的大小应该怎么办?
另外jedis里有什么方法可以用吗?

1 个回答
  • redis 貌似没有提供一个可靠的方法获得每个 db 的实际占用,这主要是因为 redis 本身就没有 db 文件概念,所有 db 都是混在一个 rdb 文件里面的。

    要想估算 db 的大小,需要通过 keys * 遍历 db 里所有的 key,然后用 debug object <key> 来获得 key 的内存占用,serializedlength 就是占用内存的字段长度。

    根据 RDB 格式文档,可以估算出每个 key 的实际占用为:

    key_size = strlen(key) + serializedlength + 7
    

    不过这个估算极不靠谱,因为 redis 可能将 key 做压缩,此时估算出来的值可能偏大。


    下面的命令可以查看 db0 的大小(key 个数),其他的以此类推。

    select 0
    dbsize
    

    或者使用 info keyspace 同时得到所有 db 信息。

    2022-10-26 14:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有