Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

Redis MEMORY STATS 命令

Redis 服务器 Redis 服务器


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"