Redis 的 info 命令可以查看哪些信息?

· 约 7 分钟读完 · 第 78 / 115 章

推荐答案

INFO 命令用于查看 Redis 服务器的各种信息和统计。它可以返回多个部分的信息,包括:

  • Server: Redis 服务器的基本信息,如版本、运行时间、进程 ID 等。
  • Clients: 客户端连接信息,如连接数、阻塞客户端数等。
  • Memory: 内存使用情况,如已用内存、内存碎片率等。
  • Persistence: 持久化相关信息,如 RDB 和 AOF 的状态。
  • Stats: 一般统计信息,如命令处理数、网络流量等。
  • Replication: 主从复制信息,如角色、复制偏移量等。
  • CPU: CPU 使用情况。
  • Commandstats: 各个命令的统计信息。
  • Cluster: Redis 集群信息。
  • Keyspace: 数据库键空间信息,如键的数量、过期键的数量等。

可以通过 INFO [section] 来获取特定部分的信息,例如 INFO memory 只返回内存相关的信息。

本题详细解读

INFO 命令是 Redis 中非常重要的一个命令,它可以帮助开发者或运维人员快速了解 Redis 服务器的运行状态和性能指标。以下是各个部分的详细说明:

Server

  • redis_version: Redis 服务器的版本。
  • redis_git_sha1: Git SHA1。
  • redis_git_dirty: Git dirty flag。
  • os: 运行 Redis 的操作系统。
  • arch_bits: 架构(32 或 64 位)。
  • multiplexing_api: 事件处理机制(如 epoll、kqueue 等)。
  • process_id: Redis 服务器的进程 ID。
  • run_id: Redis 服务器的运行 ID。
  • tcp_port: TCP/IP 端口。
  • uptime_in_seconds: 服务器运行时间(秒)。
  • uptime_in_days: 服务器运行时间(天)。
  • hz: 服务器频率。
  • lru_clock: LRU 时钟。
  • executable: 可执行文件路径。
  • config_file: 配置文件路径。

Clients

  • connected_clients: 已连接的客户端数量。
  • client_longest_output_list: 当前客户端输出缓冲区中最长的列表。
  • client_biggest_input_buf: 当前客户端输入缓冲区中最大的缓冲区。
  • blocked_clients: 被阻塞的客户端数量。

Memory

  • used_memory: Redis 分配的内存总量。
  • used_memory_human: 以人类可读格式显示的内存总量。
  • used_memory_rss: 从操作系统的角度,Redis 占用的内存总量。
  • used_memory_peak: Redis 内存消耗的峰值。
  • used_memory_peak_human: 以人类可读格式显示的内存峰值。
  • used_memory_lua: Lua 引擎使用的内存。
  • mem_fragmentation_ratio: 内存碎片比率。
  • mem_allocator: 内存分配器。

Persistence

  • loading: 是否正在加载持久化文件。
  • 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 保存操作的耗时(秒)。
  • aof_enabled: AOF 是否启用。
  • aof_rewrite_in_progress: 是否正在执行 AOF 重写。
  • aof_rewrite_scheduled: 是否计划执行 AOF 重写。
  • aof_last_rewrite_time_sec: 上次 AOF 重写操作的耗时(秒)。
  • aof_current_rewrite_time_sec: 当前 AOF 重写操作的耗时(秒)。
  • aof_last_bgrewrite_status: 上次 AOF 重写操作的状态。
  • aof_last_write_status: 上次 AOF 写入操作的状态。

Stats

  • total_connections_received: 服务器启动以来接受的连接总数。
  • total_commands_processed: 服务器启动以来处理的命令总数。
  • instantaneous_ops_per_sec: 每秒处理的命令数。
  • total_net_input_bytes: 服务器启动以来接收的网络流量总量。
  • total_net_output_bytes: 服务器启动以来发送的网络流量总量。
  • instantaneous_input_kbps: 每秒接收的网络流量(KB)。
  • instantaneous_output_kbps: 每秒发送的网络流量(KB)。
  • rejected_connections: 由于 maxclients 限制而被拒绝的连接数。
  • sync_full: 主从同步时,全量同步的次数。
  • sync_partial_ok: 主从同步时,部分同步成功的次数。
  • sync_partial_err: 主从同步时,部分同步失败的次数。
  • expired_keys: 服务器启动以来过期的键总数。
  • evicted_keys: 由于内存限制而被驱逐的键总数。
  • keyspace_hits: 键空间命中次数。
  • keyspace_misses: 键空间未命中次数。
  • pubsub_channels: 当前订阅的频道数量。
  • pubsub_patterns: 当前订阅的模式数量。
  • latest_fork_usec: 上次 fork 操作的耗时(微秒)。

Replication

  • role: 当前实例的角色(master 或 slave)。
  • connected_slaves: 已连接的从服务器数量。
  • master_repl_offset: 主服务器的复制偏移量。
  • repl_backlog_active: 复制积压缓冲区是否激活。
  • repl_backlog_size: 复制积压缓冲区的大小。
  • repl_backlog_first_byte_offset: 复制积压缓冲区的第一个字节的偏移量。
  • repl_backlog_histlen: 复制积压缓冲区的历史长度。

CPU

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

Commandstats

  • cmdstat_XXX: 每个命令的统计信息,包括调用次数、总耗时、平均耗时等。

Cluster

  • cluster_enabled: 是否启用集群模式。

Keyspace

  • dbX: 每个数据库的键空间信息,包括键的数量、过期键的数量等。