MEMORY USAGE

估计某个键的内存使用情况。

语法

MEMORY USAGE key [SAMPLES count]

引入版本:4.0.0

复杂度摘要:O(N)

MEMORY USAGE 命令报告键及其值需要存储在 RAM 中的字节数。

报告的使用情况是键及其值所需的数据内存分配和管理开销的总和。

对于以紧凑哈希编码存储的哈希,报告的使用情况还包括键在共享紧凑哈希模板内存中的份额(模板的大小在引用它的所有键之间平均分配)。 Redis 8.10 中添加。

对于嵌套数据类型,可以提供可选的 SAMPLES 选项,其中 count 是采样的嵌套值的数量。对样本进行平均以估计总大小。默认情况下,此选项设置为 5。要对所有嵌套值进行采样,请使用 SAMPLES 0。

必需参数

key

报告内存使用情况的关键。

可选参数

SAMPLES count

聚合类型的采样嵌套值的数量。 0 对所有这些进行采样;默认值为 5。

示例

对于 Redis v7.2.0 64 位和 jemalloc,空字符串测量如下:

> SET "" ""
OK
> MEMORY USAGE ""
(integer) 56

这些字节目前是纯粹的开销,因为没有存储实际数据,并且用于维护服务器的内部数据结构(包括内部分配器碎片)。较长的键和值显示渐近线性使用。

> SET foo bar
OK
> MEMORY USAGE foo
(integer) 56
> SET foo2 mybar
OK
> MEMORY USAGE foo2
(integer) 64
> SET foo3 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
OK
> MEMORY USAGE foo3
(integer) 160

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动
Redis 7 之前的版本不支持 脚本。

注意:Redis 软件或 Redis 云双活数据库上的键内存使用量与非双活数据库上的键内存使用量不同。这是因为内存使用包括一定量的 CRDB 开销。

返回值

RESP2

以下之一: * 整数回复:内存使用量(以字节为单位)。 * 无回复:如果键不存在。

RESP3

以下之一: * 整数回复:内存使用量(以字节为单位)。 * 空回复:如果键不存在。

资料来源:Redis 官方 MEMORY USAGE 文档;中文内容参考 Redis 文档许可。