• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • info 命令

    INFO命令以一种易于理解和阅读的格式,返回关于Redis服务器的各种信息和统计数值。

    语法

    INFO[section]

    通过给定可选的参数 section ,可以让命令只返回某一部分的信息:

    • server:查看 Redis 服务器信息,如 Redis 的版本
    • clients:客户端的连接部分
    • memory:内存消耗相关信息
    • persistence: RDB和AOF相关信息
    • stats:一般统计
    • replication:主/从复制信息
    • cpu:统计CPU的消耗
    • commandstats: Redis命令统计
    • cluster: Redis集群信息
    • keyspace:数据库的相关统计
    • modules: Module 相关信息

    它也可以采取以下值:

    • all:返回所有信息
    • default:值返回默认设置的信息
    • everything:包括allmodules

    如果没有使用任何参数时,默认为default

    返回值

    多行字符串:文本行的合集


    全部信息

    每一行包含了包含一种信息或者属性(从#字符开始)。所有的属性都是以字段:值(field:value)的形式,以\r\n结尾。

    redis> INFO
    
    # Server
    redis_version:6.0.9
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:95eb037379d5f3f8
    redis_mode:standalone
    os:Linux 3.10.0-862.el7.x86_64 x86_64
    arch_bits:64
    multiplexing_api:epoll
    atomicvar_api:atomic-builtin
    gcc_version:8.3.0
    process_id:1
    run_id:9ad957e54a1c30045cc225a918a16451d18c4852
    tcp_port:6379
    uptime_in_seconds:14739964
    uptime_in_days:170
    hz:10
    configured_hz:10
    lru_clock:9533449
    executable:/data/redis-server
    config_file:
    io_threads_active:0
    
    # Clients
    connected_clients:8
    client_recent_max_input_buffer:8
    client_recent_max_output_buffer:0
    blocked_clients:0
    tracking_clients:0
    clients_in_timeout_table:0
    
    # Memory
    used_memory:56409912
    used_memory_human:53.80M
    used_memory_rss:65236992
    used_memory_rss_human:62.21M
    used_memory_peak:56461800
    used_memory_peak_human:53.85M
    used_memory_peak_perc:99.91%
    used_memory_overhead:17087768
    used_memory_startup:803152
    used_memory_dataset:39322144
    used_memory_dataset_perc:70.71%
    allocator_allocated:56402784
    allocator_active:56721408
    allocator_resident:59928576
    total_system_memory:8201789440
    total_system_memory_human:7.64G
    used_memory_lua:37888
    used_memory_lua_human:37.00K
    used_memory_scripts:0
    used_memory_scripts_human:0B
    number_of_cached_scripts:0
    maxmemory:1024000000
    maxmemory_human:976.56M
    maxmemory_policy:allkeys-lru
    allocator_frag_ratio:1.01
    allocator_frag_bytes:318624
    allocator_rss_ratio:1.06
    allocator_rss_bytes:3207168
    rss_overhead_ratio:1.09
    rss_overhead_bytes:5308416
    mem_fragmentation_ratio:1.16
    mem_fragmentation_bytes:8910600
    mem_not_counted_for_evict:0
    mem_replication_backlog:0
    mem_clients_slaves:0
    mem_clients_normal:164064
    mem_aof_buffer:0
    mem_allocator:jemalloc-5.1.0
    active_defrag_running:0
    lazyfree_pending_objects:0
    
    # Persistence
    loading:0
    rdb_changes_since_last_save:37
    rdb_bgsave_in_progress:0
    rdb_last_save_time:1620145799
    rdb_last_bgsave_status:ok
    rdb_last_bgsave_time_sec:0
    rdb_current_bgsave_time_sec:-1
    rdb_last_cow_size:2813952
    aof_enabled:0
    aof_rewrite_in_progress:0
    aof_rewrite_scheduled:0
    aof_last_rewrite_time_sec:-1
    aof_current_rewrite_time_sec:-1
    aof_last_bgrewrite_status:ok
    aof_last_write_status:ok
    aof_last_cow_size:0
    module_fork_in_progress:0
    module_fork_last_cow_size:0
    
    # Stats
    total_connections_received:516
    total_commands_processed:3765324
    instantaneous_ops_per_sec:0
    total_net_input_bytes:310647618
    total_net_output_bytes:49829717
    instantaneous_input_kbps:0.00
    instantaneous_output_kbps:0.00
    rejected_connections:0
    sync_full:0
    sync_partial_ok:0
    sync_partial_err:0
    expired_keys:5419
    expired_stale_perc:0.00
    expired_time_cap_reached_count:0
    expire_cycle_cpu_milliseconds:768610
    evicted_keys:0
    keyspace_hits:869128
    keyspace_misses:368408
    pubsub_channels:0
    pubsub_patterns:0
    latest_fork_usec:2269
    migrate_cached_sockets:0
    slave_expires_tracked_keys:0
    active_defrag_hits:0
    active_defrag_misses:0
    active_defrag_key_hits:0
    active_defrag_key_misses:0
    tracking_total_keys:0
    tracking_total_items:0
    tracking_total_prefixes:0
    unexpected_error_replies:0
    total_reads_processed:3736456
    total_writes_processed:3735954
    io_threaded_reads_processed:0
    io_threaded_writes_processed:0
    
    # Replication
    role:master
    connected_slaves:0
    master_replid:2f07cd9bedbb1c93ae4361e19fd31e4af00d8fbc
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:0
    second_repl_offset:-1
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0
    
    # CPU
    used_cpu_sys:14116.239050
    used_cpu_user:11544.253149
    used_cpu_sys_children:253.718299
    used_cpu_user_children:3039.462022
    
    # Modules
    
    # Cluster
    cluster_enabled:0
    
    # Keyspace
    db0:keys=298154,expires=1,avg_ttl=2304774500
    

    注意:请注意不同Redis版本会添加或者删除一些字段。一个健壮的客户端应用解析该命令的结果时,应该跳过未知的字段,并且优雅的处理缺少的字段。


    字段说明

    以下是Redis >= 2.4的字段说明。

    下面是所有server相关的信息:

    • redis_version: Redis 服务器版本
    • redis_git_sha1: Git SHA1
    • redis_git_dirty: Git dirty flag
    • redis_build_id:构建ID
    • redis_mode:服务器模式(standalone,sentinel或者cluster)
    • os: Redis 服务器的宿主操作系统
    • arch_bits:架构(32 或 64 位)
    • multiplexing_api: Redis 所使用的事件处理机制
    • atomicvar_api: Redis使用的Atomicvar API
    • gcc_version:编译 Redis 时所使用的 GCC 版本
    • process_id:服务器进程的 PID
    • run_id: Redis 服务器的随机标识符(用于 Sentinel 和集群)
    • tcp_port: TCP/IP 监听端口
    • uptime_in_seconds:自 Redis 服务器启动以来,经过的秒数
    • uptime_in_days:自 Redis 服务器启动以来,经过的天数
    • hz:服务器的频率设置
    • lru_clock:以分钟为单位进行自增的时钟,用于 LRU 管理
    • executable:服务器的可执行文件路径
    • config_file:配置文件路径

    下面是所有clients相关的信息:

    • connected_clients:已连接客户端的数量(不包括通过从属服务器连接的客户端)
    • client_longest_output_list:当前连接的客户端当中,最长的输出列表
    • client_biggest_input_buf:当前连接的客户端当中,最大输入缓存
    • blocked_clients:正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量

    下面是所有memory相关的信息:

    • used_memory:由 Redis 分配器分配的内存总量,以字节(byte)为单位
    • used_memory_human:以人类可读的格式返回 Redis 分配的内存总量
    • used_memory_rss:从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
    • used_memory_peak: Redis 的内存消耗峰值(以字节为单位)
    • used_memory_peak_human:以人类可读的格式返回 Redis 的内存消耗峰值
    • used_memory_peak_perc:使用内存占峰值内存的百分比
    • used_memory_overhead:服务器为管理其内部数据结构而分配的所有开销的总和(以字节为单位)
    • used_memory_startup: Redis在启动时消耗的初始内存大小(以字节为单位)
    • used_memory_dataset:以字节为单位的数据集大小(usedmemory减去usedmemory_overhead)
    • used_memory_dataset_perc: usedmemorydataset占净内存使用量的百分比(usedmemory减去usedmemory_startup)
    • total_system_memory: Redis主机具有的内存总量
    • total_system_memory_human:以人类可读的格式返回 Redis主机具有的内存总量
    • used_memory_lua: Lua 引擎所使用的内存大小(以字节为单位)
    • used_memory_lua_human:以人类可读的格式返回 Lua 引擎所使用的内存大小
    • maxmemory: maxmemory配置指令的值
    • maxmemory_human:以人类可读的格式返回 maxmemory配置指令的值
    • maxmemory_policy: maxmemory-policy配置指令的值
    • mem_fragmentation_ratio:used_memory_rssused_memory之间的比率
    • mem_allocator:在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。
    • active_defrag_running:指示活动碎片整理是否处于活动状态的标志
    • lazyfree_pending_objects:等待释放的对象数(由于使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHALL)

    在理想情况下, usedmemoryrss 的值应该只比 used_memory 稍微高一点儿。

    当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。

    内存碎片的比率可以通过 memfragmentationratio 的值看出。

    当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。

    由于Redis无法控制其分配的内存如何映射到内存页,因此常住内存(usedmemoryrss)很高通常是内存使用量激增的结果。

    当 Redis 释放内存时,内存将返回给分配器,分配器可能会,也可能不会,将内存返还给操作系统。

    如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。

    查看 usedmemorypeak 的值可以验证这种情况是否发生。

    要获得有关服务器内存的其他内省信息,可以参考MEMORY STATSMEMORY DOCTOR

    下面是所有persistence相关的信息:

    • loading:指示转储文件(dump)的加载是否正在进行的标志
    • rdb_changes_since_last_save:自上次转储以来的更改次数
    • rdb_bgsave_in_progress:指示RDB文件是否正在保存的标志
    • rdb_last_save_time:上次成功保存RDB的基于纪年的时间戳
    • rdb_last_bgsave_status:上次RDB保存操作的状态
    • rdb_last_bgsave_time_sec:上次RDB保存操作的持续时间(以秒为单位)
    • rdb_current_bgsave_time_sec:正在进行的RDB保存操作的持续时间(如果有)
    • rdb_last_cow_size:上次RDB保存操作期间copy-on-write分配的字节大小
    • aof_enabled:表示AOF记录已激活的标志
    • aof_rewrite_in_progress:表示AOF重写操作正在进行的标志
    • aof_rewrite_scheduled:表示一旦进行中的RDB保存操作完成,就会安排进行AOF重写操作的标志
    • aof_last_rewrite_time_sec:上次AOF重写操作的持续时间,以秒为单位
    • aof_current_rewrite_time_sec:正在进行的AOF重写操作的持续时间(如果有)
    • aof_last_bgrewrite_status:上次AOF重写操作的状态
    • aof_last_write_status:上一次AOF写入操作的状态
    • aof_last_cow_size:上次AOF重写操作期间copy-on-write分配的字节大小

    changes_since_last_save指的是从上次调用SAVE或者BGSAVE以来,在数据集中产生某种变化的操作的数量。

    如果启用了AOF,则会添加以下这些额外的字段:

    • aof_current_size:当前的AOF文件大小
    • aof_base_size:上次启动或重写时的AOF文件大小
    • aof_pending_rewrite:指示AOF重写操作是否会在当前RDB保存操作完成后立即执行的标志。
    • aof_buffer_length: AOF缓冲区大小
    • aof_rewrite_buffer_length: AOF重写缓冲区大小
    • aof_pending_bio_fsync:在后台IO队列中等待fsync处理的任务数
    • aof_delayed_fsync:延迟fsync计数器

    如果正在执行加载操作,将会添加这些额外的字段:

    • loading_start_time:加载操作的开始时间(基于纪元的时间戳)
    • loading_total_bytes:文件总大小
    • loading_loaded_bytes:已经加载的字节数
    • loading_loaded_perc:已经加载的百分比
    • loading_eta_seconds:预计加载完成所需的剩余秒数

    下面是所有stats相关的信息:

    • total_connections_received:服务器接受的连接总数
    • total_commands_processed:服务器处理的命令总数
    • instantaneous_ops_per_sec:每秒处理的命令数
    • rejected_connections:由于maxclients限制而拒绝的连接数
    • expired_keys: key到期事件的总数
    • evicted_keys:由于maxmemory限制而导致被驱逐的key的数量
    • keyspace_hits:在主字典中成功查找到key的次数
    • keyspace_misses:在主字典中查找key失败的次数
    • pubsub_channels:拥有客户端订阅的全局pub/sub通道数
    • pubsub_patterns:拥有客户端订阅的全局pub/sub模式数
    • latest_fork_usec:最新fork操作的持续时间,以微秒为单位

    下面是所有replication相关的信息:

    • role:如果实例不是任何节点的从节点,则值是”master”,如果实例从某个节点同步数据,则是”slave”。请注意,一个从节点可以是另一个从节点的主节点(菊花链)。

    如果实例是从节点,则会提供以下这些额外字段:

    • master_host:主节点的Host名称或IP地址
    • master_port:主节点监听的TCP端口
    • master_link_status:连接状态(up或者down)
    • master_last_io_seconds_ago:自上次与主节点交互以来,经过的秒数
    • master_sync_in_progress:指示主节点正在与从节点同步

    如果SYNC操作正在进行,则会提供以下这些字段:

    • master_sync_left_bytes:同步完成前剩余的字节数
    • master_sync_last_io_seconds_ago:在SYNC操作期间自上次传输IO以来的秒数

    如果主从节点之间的连接断开了,则会提供一个额外的字段:

    • master_link_down_since_seconds:自连接断开以来,经过的秒数

    以下字段将始终提供:

    • connected_slaves:已连接的从节点数

    对每个从节点,将会添加以下行:

    • slaveXXX: id,地址,端口号,状态

    下面是所有cpu相关的信息:

    • used_cpu_sys:由Redis服务器消耗的系统CPU
    • used_cpu_user:由Redis服务器消耗的用户CPU
    • used_cpu_sys_children:由后台进程消耗的系统CPU
    • used_cpu_user_children:由后台进程消耗的用户CPU

    commandstats部分提供基于命令类型的统计,包含调用次数,这些命令消耗的总CPU时间,以及每个命令执行所消耗的平均CPU。

    对于每一个命令类型,添加以下行:

    • cmdstat_XXX:calls=XXX,usec=XXX,usec_per_call=XXX

    cluster部分当前只包含一个唯一的字段:

    • cluster_enabled:表示已启用Redis集群

    keyspace部分提供有关每个数据库的主字典的统计,统计信息是key的总数和过期的key的总数。

    对于每个数据库,提供以下行:

    • dbXXX:keys=XXX,expires=XXX