如何确定Redis中单个key的大小

问题描述 投票:0回答:6

如何知道 中特定键的大小(以 KB 为单位)?
我知道

info memory
命令,但它给出了 Redis 实例的组合大小,而不是单个键的大小。

memory redis key size
6个回答
21
投票

我知道这是一个老问题,但是,仅供记录,Redis 自版本

4.0.0
以来实现了 memory usage <key> 命令。

输出是将密钥存储在 RAM 中所需的字节量。

参考:https://redis.io/commands/memory-usage u200f


4
投票

您目前(v2.8.23 和 v3.0.5)不能。

来自

serializedlength
DEBUG OBJECT
(如 @Kumar 所建议)并不表示该值在 RAM 中的真实大小 - Redis 一方面采用多种“技巧”来保存在 RAM 上,另一方面您还需要考虑到数据结构的开销(也许还有 Redis 的一些全局字典)。

好消息是,OSS 项目中已经有关于该主题的讨论,并且很可能在未来内存内省将得到极大改进。

注意:我开始(暂时停止)关于该主题的系列 - 这是第一部分:https://redislabs.com/blog/redis-ram-ramifications-i


1
投票

DEBUG OBJECT <key>
揭示了类似于密钥的
serializedlength
的东西,这实际上是我一直在寻找的东西......对于整个数据库,您需要聚合KEYS *的所有值,这对于脚本语言来说应该不会太困难您的选择...不好的是 redis.io 并没有太多关于 DEBUG OBJECT 的信息。


1
投票

为什么不尝试一下

附加{您的密钥}“”

这不会向现有值添加任何内容,但返回当前长度。


1
投票

如果您只想获取键(字符串)的长度:STRLEN


0
投票

像redis Insight这样的GUI也显示它。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.