memory usage 命令

命令 MEMORY USAGE 给出一个 key 和它值在 RAM 中占用的字节数。返回的结果是 key 的值以及为管理该 key 分配的内存总字节数。对于嵌套数据类型,可以使用选项 SAMPLES ,其中 COUNT 表示抽样的元素个数,默认值为5。当需要抽样所有元素时,使用 SAMPLES 0

语法

MEMORY USAGE key[SAMPLES count]

返回值

使用的内存的字节数


例子

在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