Redis MEMORY USAGE 命令给出一个 key 和它值在 RAM 中占用的字节数。返回的结果是 key 的值以及为管理该 key 分配的内存总字节数。对于嵌套数据类型,可以使用选项 SAMPLES,其中 COUNT 表示抽样的元素个数,默认值为 5。当需要抽样所有元素时,使用 SAMPLES 0。
命令格式
MEMORY USAGE key [SAMPLES count]
可用版本:>=4.0.0
时间复杂度:O(N),N 为 SAMPLES 的个数
命令返回值
返回使用的内存的字节数。
示例
在 redis 64 位版本 V4.0.1 和 jemalloc 做内存分配器的情况下,空 string 可定义如下:
redis> SET "" ""
OK
redis> MEMORY USAGE ""
(integer) 51
如上,实际数据为空,但是存储时仍然耗费了一些内存,这些内存用于 Redis 服务器维护内部数据结构。随着 key 和 value 的增大,内存使用量和 key 大小基本成线性关系。
redis> SET foo bar
OK
redis> MEMORY USAGE foo
(integer) 54
redis> SET cento 01234567890123456789012345678901234567890123
45678901234567890123456789012345678901234567890123456789
OK
redis> MEMORY USAGE cento
(integer) 153