开发者社区> 问答> 正文

你好。目前redis存储空调。一天300M增长

  可以单独看 DB11 存储的大小吗 

展开
收起
朝闻夕事 2018-08-22 12:05:52 703 0
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 信息。

    2018-08-22 12:10:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载