信息

语法
INFO [section [section ...]]
可用版本
1.0.0
时间复杂度
O(1)
ACL 类别
@slow, @dangerous,

INFO 命令以一种易于计算机解析和人类阅读的格式返回关于服务器的信息和统计数据。

可选参数可用于选择特定信息部分

  • server: 关于 Redis 服务器的通用信息
  • clients: 客户端连接部分
  • memory: 与内存消耗相关的的信息
  • persistence: 与 RDB 和 AOF 相关的的信息
  • stats: 通用统计数据
  • replication: 主从复制信息
  • cpu: CPU 消耗统计数据
  • commandstats: Redis 命令统计数据
  • latencystats: Redis 命令延迟百分位数分布统计数据
  • sentinel: Redis Sentinel 部分(仅适用于 Sentinel 实例)
  • cluster: Redis 集群部分
  • modules: 模块部分
  • keyspace: 与数据库相关的统计数据
  • errorstats: Redis 错误统计数据

它也可以取以下值

  • all: 返回所有部分(不包括模块生成的那些)
  • default: 仅返回默认部分集
  • everything: 包括 allmodules

当不提供参数时,将使用 default 选项。

INFO

注意

请注意,根据 Redis 的版本,某些字段可能已被添加或删除。因此,一个健壮的客户端应用程序应该通过跳过未知属性来解析此命令的结果,并优雅地处理缺失的字段。

以下是 Redis >= 2.4 的字段描述。

以下是 server 部分中所有字段的含义

  • redis_version: Redis 服务器的版本
  • redis_git_sha1: Git SHA1
  • redis_git_dirty: Git 脏标记
  • 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
  • process_supervised: 监督系统(“upstart”、“systemd”、“unknown” 或 “no”)
  • run_id: 标识 Redis 服务器的随机值(供 Sentinel 和 Cluster 使用)
  • tcp_port: TCP/IP 监听端口
  • server_time_usec: 基于纪元的系统时间,具有微秒精度
  • uptime_in_seconds: 自 Redis 服务器启动以来的秒数
  • uptime_in_days: 以天为单位表示的相同值
  • hz: 服务器当前的频率设置
  • configured_hz: 服务器的配置频率设置
  • lru_clock: 每分钟递增的时钟,用于 LRU 管理
  • executable: 服务器可执行文件的路径
  • config_file: 配置文件的路径
  • io_threads_active: 指示 I/O 线程是否处于活动状态的标志
  • shutdown_in_milliseconds: 复制节点在完成关闭序列之前,为了赶上复制进度而剩余的最大时间。此字段仅在关闭期间存在。

以下是 clients 部分中所有字段的含义

  • connected_clients: 客户端连接数(不包括来自复制节点的连接)
  • cluster_connections: 集群总线使用的套接字数的近似值
  • maxclients: maxclients 配置指令的值。这是 connected_clientsconnected_slavescluster_connections 总和的上限。
  • client_recent_max_input_buffer: 当前客户端连接中最大的输入缓冲区
  • client_recent_max_output_buffer: 当前客户端连接中最大的输出缓冲区
  • blocked_clients: 在阻塞调用上的客户端数量(BLPOPBRPOPBRPOPLPUSHBLMOVEBZPOPMINBZPOPMAX)。
  • tracking_clients: 正在跟踪的客户端数量(CLIENT TRACKING)。
  • pubsub_clients: 处于发布/订阅模式的客户端数量(SUBSCRIBEPSUBSCRIBESSUBSCRIBE)。在 Redis 7.4 中添加。
  • watching_clients: 处于监视模式的客户端数量(WATCH)。在 Redis 7.4 中添加。
  • clients_in_timeout_table: 客户端超时表中的客户端数量。
  • total_watched_keys: 监视的键的数量。在 Redis 7.4 中添加。
  • total_blocking_keys: 阻塞键的数量。在 Redis 7.2 中添加。
  • total_blocking_keys_on_nokey: 当键被删除时,一个或多个希望被解除阻塞的客户端的阻塞键的数量。在 Redis 7.2 中添加。

以下是 memory 部分中所有字段的含义。

  • used_memory: Redis 使用其分配器(标准 libcjemalloc 或其他分配器,例如 tcmalloc)分配的总字节数。
  • used_memory_human: 上一个值的易读表示。
  • used_memory_rss: Redis 分配的字节数,如操作系统所见(也称为驻留集大小)。这是 top(1)ps(1) 等工具报告的数字。
  • used_memory_rss_human: 上一个值的易读表示。
  • used_memory_peak: Redis 使用的峰值内存(以字节为单位)。
  • used_memory_peak_human: 上一个值的易读表示。
  • used_memory_peak_perc: used_memory_peak 相对于 used_memory 的百分比。
  • used_memory_overhead: 服务器为管理其内部数据结构而分配的所有开销的总和(以字节为单位)。
  • used_memory_startup: Redis 启动时使用的初始内存量(以字节为单位)。
  • used_memory_dataset: 数据集的大小(以字节为单位)(从 used_memory 中减去 used_memory_overhead)。
  • used_memory_dataset_perc: used_memory_dataset 相对于净内存使用量(used_memory 减去 used_memory_startup)的百分比。
  • total_system_memory: Redis 主机拥有的总内存量。
  • total_system_memory_human: 上一个值的易读表示。
  • used_memory_lua: Lua 引擎为 EVAL 脚本使用的字节数。在 Redis 7.0 中弃用,重命名为 used_memory_vm_eval
  • used_memory_vm_eval: 脚本 VM 引擎为 EVAL 框架使用的字节数(不是 used_memory 的一部分)。在 Redis 7.0 中添加。
  • used_memory_lua_human: 上一个值的易读表示。在 Redis 7.0 中弃用。
  • used_memory_scripts_eval: EVAL 脚本的开销字节数(used_memory 的一部分)。在 Redis 7.0 中添加。
  • number_of_cached_scripts: 服务器缓存的 EVAL 脚本数量。在 Redis 7.0 中添加。
  • number_of_functions: 函数的数量。在 Redis 7.0 中添加。
  • number_of_libraries: 库的数量。在 Redis 7.0 中添加。
  • used_memory_vm_functions: 脚本 VM 引擎为 Functions 框架使用的字节数(不是 used_memory 的一部分)。在 Redis 7.0 中添加。
  • used_memory_vm_total: used_memory_vm_eval + used_memory_vm_functions (不是 used_memory 的一部分)。在 Redis 7.0 中添加。
  • used_memory_vm_total_human: 上一个值的易读表示。
  • used_memory_functions: Function 脚本的开销字节数(used_memory 的一部分)。在 Redis 7.0 中添加。
  • used_memory_scripts: used_memory_scripts_eval + used_memory_functionsused_memory 的一部分)。在 Redis 7.0 中添加。
  • used_memory_scripts_human: 上一个值的易读表示。
  • maxmemory: maxmemory 配置指令的值。
  • maxmemory_human: 上一个值的易读表示。
  • maxmemory_policy: maxmemory-policy 配置指令的值。
  • mem_fragmentation_ratio: used_memory_rssused_memory 之间的比率。请注意,这不仅包括碎片,还包括其他进程开销(参见 allocator_* 指标),以及代码、共享库、堆栈等的开销。
  • mem_fragmentation_bytes: used_memory_rssused_memory 之间的差值。请注意,当总碎片字节数很低(几兆字节)时,高比率(例如 1.5 及以上)并不代表存在问题。
  • allocator_frag_ratio:: allocator_activeallocator_allocated 之间的比率。这是真正的(外部)碎片指标(不是 mem_fragmentation_ratio)。
  • allocator_frag_bytes: allocator_activeallocator_allocated 之间的差值。参见关于 mem_fragmentation_bytes 的说明。
  • allocator_rss_ratio: allocator_residentallocator_active 之间的比率。这通常表示分配器可以并且可能很快将释放回操作系统的页面。
  • allocator_rss_bytes: allocator_residentallocator_active 之间的差值。
  • rss_overhead_ratio: used_memory_rss(进程 RSS)与 allocator_resident 之间的比率。这包括与分配器或堆无关的 RSS 开销。
  • rss_overhead_bytes: used_memory_rss(进程 RSS)与 allocator_resident 之间的差值。
  • allocator_allocated: 从分配器分配的总字节数,包括内部碎片。通常与 used_memory 相同。
  • allocator_active: 分配器活动页面中的总字节数,这包括外部碎片。
  • allocator_resident: 分配器中驻留的总字节数(RSS),这包括可以释放回操作系统的页面(通过 MEMORY PURGE,或者只是等待)。
  • allocator_muzzy: 分配器中“模糊”内存(RSS)的总字节数。“模糊”内存是指已被释放但尚未完全返回给操作系统的内存。它可以在需要时立即重用,或者当系统压力增加时由操作系统回收。
  • mem_not_counted_for_evict: 用于排除键驱逐的已使用内存。这基本上是瞬态副本和 AOF 缓冲区。
  • mem_clients_slaves: 副本客户端使用的内存 - 从 Redis 7.0 开始,副本缓冲区与复制 backlog 共享内存,因此当副本没有触发内存使用量的增加时,此字段可能显示 0。
  • mem_clients_normal: 普通客户端使用的内存。
  • mem_cluster_links: 当启用集群模式时,集群总线上的对等节点链接使用的内存。
  • mem_aof_buffer: 用于 AOF 和 AOF 重写缓冲区的瞬态内存。
  • mem_replication_backlog: 复制 backlog 使用的内存。
  • mem_total_replication_buffers: 用于复制缓冲区的总内存消耗 - 在 Redis 7.0 中添加。
  • mem_allocator: 内存分配器,在编译时选择。
  • mem_overhead_db_hashtable_rehashing: 正在重新哈希的数据库字典的临时内存开销 - 在 7.4 中添加。
  • active_defrag_running: 当 activedefrag 启用时,这表示碎片整理是否当前处于活动状态,以及它打算使用的 CPU 百分比。
  • lazyfree_pending_objects: 等待释放的对象数量(由于调用 UNLINK,或使用 ASYNC 选项调用 FLUSHDBFLUSHALL)。
  • lazyfreed_objects: 已延迟释放的对象数量。

理想情况下,used_memory_rss 值应该只比 used_memory 略高。当 rss >> used 时,较大的差异可能意味着存在(外部)内存碎片,可以通过检查 allocator_frag_ratioallocator_frag_bytes 来评估。当 used >> rss 时,这意味着 Redis 内存的一部分已被操作系统交换出去:预期会有一些显著的延迟。

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

当 Redis 释放内存时,内存会返回给分配器,而分配器可能会或可能不会将内存返回给系统。used_memory 值与操作系统报告的内存消耗之间可能存在差异。这可能是由于 Redis 使用过内存并已释放,但尚未返回给系统。used_memory_peak 值通常对检查这一点很有用。

有关服务器内存的其他内省信息,请参考 MEMORY STATS 命令和 MEMORY DOCTOR

以下是 persistence 部分中所有字段的含义。

  • loading: 指示是否正在进行转储文件加载的标志。
  • async_loading: 当前正在异步加载复制数据集,同时提供旧数据。这意味着 repl-diskless-load 已启用并设置为 swapdb。在 Redis 7.0 中添加。
  • current_cow_peak: 子进程运行时写时复制内存的峰值大小(以字节为单位)。
  • current_cow_size: 子进程运行时写时复制内存的大小(以字节为单位)。
  • current_cow_size_age: current_cow_size 值的年龄,以秒为单位。
  • current_fork_perc: 当前分叉进程的进度百分比。对于 AOF 和 RDB 分叉,它是 current_save_keys_processed 相对于 current_save_keys_total 的百分比。
  • current_save_keys_processed: 当前保存操作处理的键数。
  • current_save_keys_total: 当前保存操作开始时的键数。
  • rdb_changes_since_last_save: 自上次转储以来发生的更改次数。
  • rdb_bgsave_in_progress: 指示是否正在进行 RDB 保存操作的标志。
  • rdb_last_save_time: 上次成功 RDB 保存操作的基于纪元的 timestamps。
  • rdb_last_bgsave_status: 上次 RDB 保存操作的状态。
  • rdb_last_bgsave_time_sec: 上次 RDB 保存操作的持续时间(以秒为单位)。
  • rdb_current_bgsave_time_sec: 如果有,正在进行的 RDB 保存操作的持续时间。
  • rdb_last_cow_size: 上次 RDB 保存操作期间写时复制内存的大小(以字节为单位)。
  • rdb_last_load_keys_expired: 上次 RDB 加载期间删除的易失键的数量。在 Redis 7.0 中添加。
  • rdb_last_load_keys_loaded: 上次 RDB 加载期间加载的键的数量。在 Redis 7.0 中添加。
  • 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 重写操作期间写时复制内存的大小(以字节为单位)。
  • module_fork_in_progress: 指示是否正在进行模块分叉操作的标志。
  • module_fork_last_cow_size: 上次模块分叉操作期间写时复制内存的大小(以字节为单位)。
  • aof_rewrites: 自启动以来执行的 AOF 重写次数。
  • rdb_saves: 自启动以来执行的 RDB 快照次数。

rdb_changes_since_last_save 指的是自上次调用 SAVEBGSAVE 以来在数据集中产生某种更改的操作数量。

如果 AOF 已启用,则将添加这些附加字段。

  • aof_current_size: AOF 当前文件大小。
  • aof_base_size: AOF 文件大小在最新启动或重写时。
  • aof_pending_rewrite: 指示一旦当前 RDB 保存操作完成,将调度 AOF 重写操作的标志。
  • aof_buffer_length: AOF 缓冲区的大小。
  • aof_rewrite_buffer_length: AOF 重写缓冲区的大小。请注意,此字段在 Redis 7.0 中已删除。
  • aof_pending_bio_fsync: 后台 I/O 队列中挂起的 fsync 作业数量。
  • aof_delayed_fsync: 延迟 fsync 计数器。

如果正在进行加载操作,则会添加以下字段:

  • loading_start_time: 加载操作开始时的基于纪元的时间戳
  • loading_total_bytes: 文件总大小
  • loading_rdb_used_mem: 生成 RDB 文件时服务器使用的内存
  • loading_loaded_bytes: 已加载的字节数
  • loading_loaded_perc: 以百分比表示的相同值
  • loading_eta_seconds: 加载完成的预计时间(以秒为单位)

以下是 stats 部分中所有字段的含义:

  • total_connections_received: 服务器接受的连接总数
  • total_commands_processed: 服务器处理的命令总数
  • instantaneous_ops_per_sec: 每秒处理的命令数量
  • total_net_input_bytes: 从网络读取的字节总数
  • total_net_output_bytes: 写入网络的字节总数
  • total_net_repl_input_bytes: 为复制目的从网络读取的字节总数
  • total_net_repl_output_bytes: 为复制目的写入网络的字节总数
  • instantaneous_input_kbps: 网络每秒的读取速率(以 KB/秒为单位)
  • instantaneous_output_kbps: 网络每秒的写入速率(以 KB/秒为单位)
  • instantaneous_input_repl_kbps: 为复制目的网络每秒的读取速率(以 KB/秒为单位)
  • instantaneous_output_repl_kbps: 为复制目的网络每秒的写入速率(以 KB/秒为单位)
  • rejected_connections: 由于 maxclients 限制而拒绝的连接数量
  • sync_full: 与副本进行完整同步的次数
  • sync_partial_ok: 接受的部分同步请求数量
  • sync_partial_err: 拒绝的部分同步请求数量
  • expired_subkeys: 散列字段过期事件的数量
  • expired_keys: 密钥过期事件的总数
  • expired_stale_perc: 可能过期的密钥百分比
  • expired_time_cap_reached_count: 活动过期周期提前停止的次数
  • expire_cycle_cpu_milliseconds: 活动过期周期消耗的总时间(以毫秒为单位)
  • evicted_keys: 由于 maxmemory 限制而驱逐的密钥数量
  • evicted_clients: 由于 maxmemory-clients 限制而驱逐的客户端数量。在 Redis 7.0 中添加。
  • evicted_scripts: 由于 LRU 策略而驱逐的 EVAL 脚本数量,有关更多详细信息,请参阅 EVAL。在 Redis 7.4 中添加。
  • total_eviction_exceeded_time: 自服务器启动以来 used_memory 大于 maxmemory 的总时间(以毫秒为单位)
  • current_eviction_exceeded_time: 自 used_memory 最后一次超过 maxmemory 以来经过的时间(以毫秒为单位)
  • keyspace_hits: 在主字典中成功查找密钥的次数
  • keyspace_misses: 在主字典中查找密钥失败的次数
  • pubsub_channels: 具有客户端订阅的发布/订阅通道的全局数量
  • pubsub_patterns: 具有客户端订阅的发布/订阅模式的全局数量
  • pubsubshard_channels: 具有客户端订阅的发布/订阅分片通道的全局数量。在 Redis 7.0.3 中添加
  • latest_fork_usec: 最近一次 fork 操作的持续时间(以微秒为单位)
  • total_forks: 自服务器启动以来 fork 操作的总数
  • migrate_cached_sockets: 为 MIGRATE 目的而打开的套接字数量
  • slave_expires_tracked_keys: 为过期目的跟踪的密钥数量(仅适用于可写副本)
  • active_defrag_hits: 活动碎片整理过程执行的值重新分配次数
  • active_defrag_misses: 活动碎片整理过程启动的已中止的值重新分配次数
  • active_defrag_key_hits: 活动碎片整理的密钥数量
  • active_defrag_key_misses: 活动碎片整理过程跳过的密钥数量
  • total_active_defrag_time: 内存碎片超过限制的总时间(以毫秒为单位)
  • current_active_defrag_time: 自内存碎片最后一次超过限制以来经过的时间(以毫秒为单位)
  • tracking_total_keys: 服务器跟踪的密钥数量
  • tracking_total_items: 项目数量,即每个密钥的客户端数量之和,正在跟踪
  • tracking_total_prefixes: 服务器前缀表中跟踪的前缀数量(仅适用于广播模式)
  • unexpected_error_replies: 意外错误回复的数量,这些错误是来自 AOF 加载或复制的错误类型
  • total_error_replies: 发出的错误回复的总数,即拒绝的命令(命令执行之前的错误)和失败的命令(命令执行中的错误)之和
  • dump_payload_sanitizations: 倾销负载深度完整性验证的总数(参见 sanitize-dump-payload 配置)。
  • total_reads_processed: 处理的读取事件总数
  • total_writes_processed: 处理的写入事件总数
  • io_threaded_reads_processed: 主线程和 I/O 线程处理的读取事件数量
  • io_threaded_writes_processed: 主线程和 I/O 线程处理的写入事件数量
  • client_query_buffer_limit_disconnections: 由于客户端达到查询缓冲区限制而断开连接的总数
  • client_output_buffer_limit_disconnections: 由于客户端达到输出缓冲区限制而断开连接的总数
  • reply_buffer_shrinks: 输出缓冲区收缩的总数
  • reply_buffer_expands: 输出缓冲区扩展的总数
  • eventloop_cycles: 事件循环周期的总数
  • eventloop_duration_sum: 在事件循环中花费的总时间(以微秒为单位)(包括 I/O 和命令处理)
  • eventloop_duration_cmd_sum: 在执行命令上花费的总时间(以微秒为单位)
  • instantaneous_eventloop_cycles_per_sec: 每秒的事件循环周期数量
  • instantaneous_eventloop_duration_usec: 单个事件循环周期中花费的平均时间(以微秒为单位)
  • acl_access_denied_auth: 身份验证失败的次数
  • acl_access_denied_cmd: 由于拒绝访问命令而拒绝的命令数量
  • acl_access_denied_key: 由于拒绝访问密钥而拒绝的命令数量
  • acl_access_denied_channel: 由于拒绝访问通道而拒绝的命令数量

以下是 replication 部分中所有字段的含义:

  • role: 如果实例不是任何人的副本,则值为 "master",如果实例是某个主实例的副本,则值为 "slave"。请注意,副本可以是另一个副本的主实例(链式复制)。
  • master_failover_state: 正在进行的故障转移状态(如果有)。
  • master_replid: Redis 服务器的复制 ID。
  • master_replid2: 辅助复制 ID,用于故障转移后的 PSYNC。
  • master_repl_offset: 服务器当前的复制偏移量
  • second_repl_offset: 接受复制 ID 的偏移量
  • repl_backlog_active: 指示复制 backlog 是否处于活动状态的标志
  • repl_backlog_size: 复制 backlog 缓冲区的总大小(以字节为单位)
  • repl_backlog_first_byte_offset: 复制 backlog 缓冲区的主实例偏移量
  • repl_backlog_histlen: 复制 backlog 缓冲区中数据的尺寸(以字节为单位)

如果实例是副本,则会提供以下字段:

  • master_host: 主实例的主机或 IP 地址
  • master_port: 主实例监听的 TCP 端口
  • master_link_status: 链接的状态(up/down)
  • master_last_io_seconds_ago: 自上次与主实例交互以来的秒数
  • master_sync_in_progress: 指示主实例正在同步到副本
  • slave_read_repl_offset: 副本实例的读取复制偏移量。
  • slave_repl_offset: 副本实例的复制偏移量
  • slave_priority: 作为故障转移候选人的实例的优先级
  • slave_read_only: 指示副本是否为只读的标志
  • replica_announced: 指示副本是否由 Sentinel 公布的标志。

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

  • master_sync_total_bytes: 需要传输的字节总数。当大小未知时,这可能是 0(例如,当使用 repl-diskless-sync 配置指令时)
  • master_sync_read_bytes: 已传输的字节数量
  • master_sync_left_bytes: 同步完成前剩余的字节数量(当 master_sync_total_bytes 为 0 时可能为负数)
  • master_sync_perc: master_sync_read_bytesmaster_sync_total_bytes 的百分比,或者当 master_sync_total_bytes 为 0 时使用 loading_rdb_used_mem 的近似值
  • master_sync_last_io_seconds_ago: SYNC 操作期间上次传输 I/O 以来经过的秒数

如果主实例和副本之间的链接断开,则会提供以下字段:

  • master_link_down_since_seconds: 链接断开以来的秒数

以下字段始终提供:

  • connected_slaves: 连接的副本数量

如果服务器配置了 min-slaves-to-write(或从 Redis 5 开始使用 min-replicas-to-write)指令,则会提供以下字段:

  • min_slaves_good_slaves: 当前被视为良好的副本数量

对于每个副本,会添加以下行:

  • slaveXXX: id、IP 地址、端口、状态、偏移量、延迟

以下是 cpu 部分中所有字段的含义:

  • used_cpu_sys: Redis 服务器消耗的系统 CPU,即服务器进程(主线程和后台线程)的所有线程消耗的系统 CPU 之和
  • used_cpu_user: Redis 服务器消耗的用户 CPU,即服务器进程(主线程和后台线程)的所有线程消耗的用户 CPU 之和
  • used_cpu_sys_children: 后台进程消耗的系统 CPU
  • used_cpu_user_children: 后台进程消耗的用户 CPU
  • used_cpu_sys_main_thread: Redis 服务器主线程消耗的系统 CPU
  • used_cpu_user_main_thread: Redis 服务器主线程消耗的用户 CPU

commandstats 部分提供基于命令类型的统计信息,包括到达命令执行(未被拒绝)的调用次数、这些命令消耗的总 CPU 时间、每个命令执行消耗的平均 CPU、拒绝的调用次数(命令执行之前的错误)以及失败的调用次数(命令执行中的错误)。

对于每种命令类型,会添加以下行:

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

latencystats 部分提供基于命令类型的延迟百分位数分布统计信息。

默认情况下,导出的延迟百分位数是 p50、p99 和 p999。如果您需要更改导出的百分位数,请使用 CONFIG SET latency-tracking-info-percentiles "50.0 99.0 99.9"

此部分需要启用扩展延迟监控功能(默认情况下已启用)。如果您需要启用它,请使用 CONFIG SET latency-tracking yes

对于每种命令类型,会添加以下行:

  • latency_percentiles_usec_XXX: p<百分位数 1>=<百分位数 1 值>,p<百分位数 2>=<百分位数 2 值>,...

errorstats 部分支持跟踪在 Redis 中发生的不同的错误,基于回复错误前缀(“-” 后的第一个词,直到第一个空格。示例:ERR)。

对于每种错误类型,会添加以下行:

  • errorstat_XXX: count=XXX

如果服务器检测到此部分被过多的错误淹没,它将被禁用,显示单个ERRORSTATS_DISABLED错误,并将错误打印到服务器日志。这可以通过CONFIG RESETSTAT重置。

**哨兵** 部分仅在 Redis 哨兵实例中可用。它包含以下字段:

  • sentinel_masters:此哨兵实例监控的 Redis 主服务器数量
  • sentinel_tilt:值为 1 表示此哨兵处于 TILT 模式
  • sentinel_tilt_since_seconds:当前 TILT 的持续时间(以秒为单位),如果未处于 TILT 状态,则为 -1。在 Redis 7.0.0 中添加。
  • sentinel_running_scripts:此哨兵当前正在执行的脚本数量
  • sentinel_scripts_queue_length:待执行的用户脚本队列的长度
  • sentinel_simulate_failure_flagsSENTINEL SIMULATE-FAILURE 命令的标志

**集群** 部分目前仅包含一个唯一的字段:

  • cluster_enabled:指示 Redis 集群是否已启用

**模块** 部分包含有关已加载模块的附加信息(如果模块提供)。此部分中属性行字段部分始终以模块名称为前缀。

**键空间** 部分提供每个数据库主字典的统计信息。统计信息是键的数量和具有过期时间的键的数量。

对于每个数据库,都会添加以下行:

  • dbXXXkeys=XXX,expires=XXX,avg_ttl=XXX,subexpiry=XXX

**调试** 部分包含实验性指标,这些指标可能会在将来的版本中更改或删除。调用INFOINFO ALL时不会包含它,并且仅在使用INFO DEBUG时返回。

  • eventloop_duration_aof_sum:事件循环中用于刷新 AOF 的总时间(以微秒为单位)。
  • eventloop_duration_cron_sum:cron 的总时间消耗量(以微秒为单位)(包括 serverCron 和 beforeSleep,但不包括 IO 和 AOF 刷新)。
  • eventloop_duration_max:单个事件循环周期中花费的最长时间(以微秒为单位)。
  • eventloop_cmd_per_cycle_max:单个事件循环周期中处理的命令的最大数量。
  • allocator_allocated_lua:专门为 Lua 从分配器分配的总字节数,包括内部碎片。
  • allocator_active_lua:分配器活动页面中专门为 Lua 分配的总字节数,包括外部碎片。
  • allocator_resident_lua:分配器中专门为 Lua 分配的总常驻字节数(RSS)。这包括可以释放到操作系统的页面(通过MEMORY PURGE或只是等待)。
  • allocator_frag_bytes_luaallocator_active_luaallocator_allocated_lua之间的差值。

**关于此手册页中使用 slave 一词的说明**:从 Redis 5 开始,如果不是为了向后兼容,Redis 项目不再使用 slave 一词。不幸的是,在此命令中,slave 一词是协议的一部分,因此我们只能在该 API 自然弃用后才能删除这些出现。

**模块生成的节**:从 Redis 6 开始,模块可以将它们的信息注入到INFO命令中。即使提供了all参数,这些默认情况下也会被排除(它将包含已加载模块的列表,但不会包含它们生成的 info 字段)。要获取这些信息,您必须使用modules参数或everything

RESP2/RESP3 回复

块字符串回复:info 字段的映射,每行一个字段,形式为<field>:<value>,其中值可以是逗号分隔的映射,如<key>=<val>。还包含以#开头的节标题行和空行。

行可以包含节名称(以#字符开头)或属性。所有属性都采用field:value形式,以\r\n结尾。


历史记录

  • 从 Redis 7.0.0 开始:添加了对接受多个节参数的支持。
RATE THIS PAGE
Back to top ↑