INFO
命令以一种易于理解和阅读的格式,返回关于Redis服务器的各种信息和统计数值。
通过给定可选的参数 section ,可以让命令只返回某一部分的信息:
server
: 查看 Redis 服务器信息,如 Redis 的版本clients
: 客户端的连接部分memory
: 内存消耗相关信息persistence
: RDB和AOF相关信息stats
: 一般统计replication
: 主/从复制信息cpu
: 统计CPU的消耗commandstats
: Redis命令统计cluster
: Redis集群信息keyspace
: 数据库的相关统计modules
: Module 相关信息
它也可以采取以下值:
all
: 返回所有信息default
: 值返回默认设置的信息everything
: 包括all
和modules
如果没有使用任何参数时,默认为default
。
*返回值
多行字符串: 文本行的合集
每一行包含了包含一种信息或者属性(从#字符开始)。 所有的属性都是以字段:值(field:value
)的形式,以\r\n
结尾。
# Server redis_version:7.0.8 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:c869ebfd8f51f71c redis_mode:standalone os:Linux 3.10.0-1160.45.1.el7.x86_64 x86_64 arch_bits:64 monotonic_clock:POSIX clock_gettime multiplexing_api:epoll atomicvar_api:c11-builtin gcc_version:10.2.1 process_id:1 process_supervised:no run_id:8501c1188889b55f9772546fbd7240583c7ed6a7 tcp_port:6379 server_time_usec:1733728218893033 uptime_in_seconds:57348352 uptime_in_days:663 hz:10 configured_hz:10 lru_clock:5674970 executable:/data/redis-server config_file: io_threads_active:0 # Clients connected_clients:8 cluster_connections:0 maxclients:10000 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:340557248 used_memory_human:324.78M used_memory_rss:302977024 used_memory_rss_human:288.94M used_memory_peak:340684568 used_memory_peak_human:324.90M used_memory_peak_perc:99.96% used_memory_overhead:88786016 used_memory_startup:862208 used_memory_dataset:251771232 used_memory_dataset_perc:74.12% allocator_allocated:340795208 allocator_active:341725184 allocator_resident:349130752 total_system_memory:3973292032 total_system_memory_human:3.70G used_memory_lua:31744 used_memory_vm_eval:31744 used_memory_lua_human:31.00K used_memory_scripts_eval:0 number_of_cached_scripts:0 number_of_functions:0 number_of_libraries:0 used_memory_vm_functions:32768 used_memory_vm_total:64512 used_memory_vm_total_human:63.00K used_memory_functions:184 used_memory_scripts:184 used_memory_scripts_human:184B maxmemory:0 maxmemory_human:0B maxmemory_policy:noeviction allocator_frag_ratio:1.00 allocator_frag_bytes:929976 allocator_rss_ratio:1.02 allocator_rss_bytes:7405568 rss_overhead_ratio:0.87 rss_overhead_bytes:-46153728 mem_fragmentation_ratio:0.89 mem_fragmentation_bytes:-37537360 mem_not_counted_for_evict:0 mem_replication_backlog:0 mem_total_replication_buffers:0 mem_clients_slaves:0 mem_clients_normal:14400 mem_cluster_links:0 mem_aof_buffer:0 mem_allocator:jemalloc-5.2.1 active_defrag_running:0 lazyfree_pending_objects:0 lazyfreed_objects:0 # Persistence loading:0 async_loading:0 current_cow_peak:0 current_cow_size:0 current_cow_size_age:0 current_fork_perc:0.00 current_save_keys_processed:0 current_save_keys_total:0 rdb_changes_since_last_save:70 rdb_bgsave_in_progress:0 rdb_last_save_time:1733727877 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:3 rdb_current_bgsave_time_sec:-1 rdb_saves:82504 rdb_last_cow_size:1302528 rdb_last_load_keys_expired:0 rdb_last_load_keys_loaded:0 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_rewrites:0 aof_rewrites_consecutive_failures:0 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:734 total_commands_processed:22408366 instantaneous_ops_per_sec:0 total_net_input_bytes:1848333888 total_net_output_bytes:511322561 total_net_repl_input_bytes:0 total_net_repl_output_bytes:0 instantaneous_input_kbps:0.00 instantaneous_output_kbps:0.00 instantaneous_input_repl_kbps:0.00 instantaneous_output_repl_kbps:0.00 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:47229 expired_stale_perc:0.00 expired_time_cap_reached_count:0 expire_cycle_cpu_milliseconds:936985 evicted_keys:0 evicted_clients:0 total_eviction_exceeded_time:0 current_eviction_exceeded_time:0 keyspace_hits:5225024 keyspace_misses:2168414 pubsub_channels:0 pubsub_patterns:0 pubsubshard_channels:0 latest_fork_usec:6591 total_forks:82504 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 total_active_defrag_time:0 current_active_defrag_time:0 tracking_total_keys:0 tracking_total_items:0 tracking_total_prefixes:0 unexpected_error_replies:0 total_error_replies:27348 dump_payload_sanitizations:0 total_reads_processed:22218034 total_writes_processed:22219725 io_threaded_reads_processed:0 io_threaded_writes_processed:0 reply_buffer_shrinks:11942 reply_buffer_expands:11561 # Replication role:master connected_slaves:0 master_failover_state:no-failover master_replid:204dc7ea5e05d4c99f6c1c6ed24f484d4c62c946 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:33143.565114 used_cpu_user:46612.551856 used_cpu_sys_children:7440.590316 used_cpu_user_children:79008.504447 used_cpu_sys_main_thread:33139.632679 used_cpu_user_main_thread:46610.402356 # Modules # Errorstats errorstat_ERR:count=10358 errorstat_MISCONF:count=2567 errorstat_WRONGTYPE:count=14423 # Cluster cluster_enabled:0 # Keyspace db0:keys=1778298,expires=1,avg_ttl=71521753398
*注意
请注意不同Redis版本会添加或者删除一些字段。一个健壮的客户端应用解析该命令的结果时,应该跳过未知的字段,并且优雅的处理缺少的字段。
以下是Redis >= 2.4的字段说明。
下面是所有 server 相关的信息:
redis_version
: Redis 服务器版本redis_git_sha1
: Git SHA1redis_git_dirty
: Git dirty flagredis_build_id
: 构建IDredis_mode
: 服务器模式(standalone,sentinel或者cluster)os
: Redis 服务器的宿主操作系统arch_bits
: 架构(32 或 64 位)multiplexing_api
: Redis 所使用的事件处理机制atomicvar_api
: Redis使用的Atomicvar APIgcc_version
: 编译 Redis 时所使用的 GCC 版本process_id
: 服务器进程的 PIDrun_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_rss
和used_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 STATS
和MEMORY 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服务器消耗的系统CPUused_cpu_user
: 由Redis服务器消耗的用户CPUused_cpu_sys_children
: 由后台进程消耗的系统CPUused_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