Redis MEMORY STATS 命令将服务器的内存使用情况以数组形式返回,内存使用信息以指标和相对应值的格式返回。
命令格式
MEMORY STATS
可用版本:>=4.0.0
命令返回值
返回包含内存使用指标名称和对应值的嵌套列表。
如下指标会被返回:
- peak.allocated:Redis 启动以来,allocator 分配的内存峰值,单位字节;同 INFO 的 used_memory_peak。
- total.allocated:allocator 当前分配的内存总字节数;同 INFO 命令 used_memeory。
- startup.allocated:Redis 启动完成消耗的内存字节数;同 INFO 的 used_memory_startup。
- replication.backlog:Redis 复制积压缓存区内存字节数;同 INFO 的 repl_backlog_size。
- clients.slaves:所有副本节点内存消耗总字节数(查询输出缓冲区,连接内存消耗)。
- clients.normal:Redis 所有常规客户端内存消耗总字节数(查询输出缓冲区,连接内存消耗)。
- aof.buffer:当前和重写 AOF 缓冲区内存消耗总字节数;同 INFO 命令 aof_buffer_length 与 aof_rewrite_buffer_length 之和。
- dbXXX:每个数据库中元数据占用的额外内存字节数。(redis 的 db 就是一张 hash 表,首先就是这张 hash 表使用的内存,每一个 key-value 对都有一个 dictEntry 来记录他们的关系,元信息便包含该 db 中所有 dictEntry 使用的内存,redis 使用 redisObject 来描述 value 所对应的不同数据类型(string、list、hash、set、zset),那么 redisObject 占用的空间也计算在元信息中。overhead.hashtable.main 指以上三者之和。overhead.hashtable.expires 用于存储 key 的过期时间耗费的内存资源。)
- overhead.total:Redis 额外内存消耗总字节数,i.e. startup.allocated,replication.backlog,clients.slaves,clients.normal,aof.buffer 以及管理 keyspace 使用的内部数据接口消耗的内存字节数,同 INFO 的 used_memory_overhead。
- keys.count:整个 redis 实例 key 的个数。
- keys.bytes-per-key:每个 key 平均字节数,net memory usage(total.allocated 减去 startup.allocated)与 keys.count 的比值。
- dataset.bytes:Redis 实例中数据占用的总字节数,计算方法 total.allocated 减去 overhead.total。
- dataset.percentage:Redis 数据消耗内存占总内存的百分比。
- peak.percentage:当前内存消耗占峰值内存消耗的百分比。
- fragmentation:同 INFO 的 mem_fragmentation_ratio。
示例
redis> MEMORY STATS
1) "peak.allocated"
2) (integer) 1043488
3) "total.allocated"
4) (integer) 1043552
5) "startup.allocated"
6) (integer) 981136
7) "replication.backlog"
8) (integer) 0
9) "clients.slaves"
10) (integer) 0
11) "clients.normal"
12) (integer) 49638
13) "aof.buffer"
14) (integer) 0
15) "overhead.total"
16) (integer) 1030774
17) "keys.count"
18) (integer) 0
19) "keys.bytes-per-key"
20) (integer) 0
21) "dataset.bytes"
22) (integer) 12778
23) "dataset.percentage"
24) "20.472314834594727"
25) "peak.percentage"
26) "100.00613403320312"
27) "fragmentation"
28) "0.67110222578048706"