MEMORY STATS

MEMORY STATS 命令将服务器的内存使用情况以数组情况返回

内存使用信息以指标和相对应值的格式返回,如下指标会被返回

  • peak.allocated:redis启动以来,allocator分配的内存峰值,单位字节;同INFOused_memory_peak
  • total.allocated: allocator 当前分配的内存总字节数;同 INFO命令used_memeory
  • startup.allocated: Redis启动完成消耗的内存字节数;同INFOused_memory_startup
  • replication.backlog: Redis复制积压缓存区内存字节数;同INFOrepl_backlog_size
  • clients.slaves: 所有副本节点内存消耗总字节数(查询输出缓冲区,连接内存消耗)
  • clients.normal:Redis所有常规客户端内存消耗总字节数(查询输出缓冲区,连接内存消耗)
  • aof.buffer:当前和重写AOF缓冲区内存消耗总字节数;同 INFO命令aof_buffer_lengthaof_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使用的内部数据接口消耗的内存字节数 同INFOused_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:同 INFOmem_fragmentation_ratio

*返回值

数组: 包含内存使用指标名称和对应值的嵌套列表。

关于主页中使用的关键词slave的说明:为了保证Redis 5 的向后兼容性,我们在Redis 5 中继续使用关键词slave。slave 是协议的一部分,我们会在这类API废弃后弃用关键词slave的使用。

*例子

127.0.0.1:5379> MEMORY STATS
 1) "peak.allocated"
 2) (integer) 3767512
 3) "total.allocated"
 4) (integer) 3133280
 5) "startup.allocated"
 6) (integer) 803152
 7) "replication.backlog"
 8) (integer) 0
 9) "clients.slaves"
10) (integer) 0
11) "clients.normal"
12) (integer) 184552
13) "aof.buffer"
14) (integer) 0
15) "lua.caches"
16) (integer) 0
17) "db.0"
18) 1) "overhead.hashtable.main"
    2) (integer) 592432
    3) "overhead.hashtable.expires"
    4) (integer) 32
19) "overhead.total"
20) (integer) 1580168
21) "keys.count"
22) (integer) 11534
23) "keys.bytes-per-key"
24) (integer) 202
25) "dataset.bytes"
26) (integer) 1553112
27) "dataset.percentage"
28) "66.65350341796875"
29) "peak.percentage"
30) "83.165763854980469"
31) "allocator.allocated"
32) (integer) 3688616
33) "allocator.active"
34) (integer) 4108288
35) "allocator.resident"
36) (integer) 6651904
37) "allocator-fragmentation.ratio"
38) "1.1137748956680298"
39) "allocator-fragmentation.bytes"
40) (integer) 419672
41) "allocator-rss.ratio"
42) "1.6191425323486328"
43) "allocator-rss.bytes"
44) (integer) 2543616
45) "rss-overhead.ratio"
46) "1.9667487144470215"
47) "rss-overhead.bytes"
48) (integer) 6430720
49) "fragmentation"
50) "4.2307591438293457"
51) "fragmentation.bytes"
52) (integer) 9990360