Redis服务器统计和配置信息简介
-
首先使用
INFO
命令在Redis中用于获取Redis服务器的各种统计和配置信息; -
执行上述命令后,返回的信息分为多个部分,包括++服务器信息、客户端信息、内存信息、持久化信息、统计信息、复制信息、CPU信息和键空间信息++;
-
以
redisredis 127.0.0.1:6379> INFO # Server redis_version:2.8.13 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:c2238b38b1edb0e2 redis_mode:standalone os:Linux 3.5.0-48-generic x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.7.2 process_id:3856 run_id:0e61abd297771de3fe812a3c21027732ac9f41fe tcp_port:6379 uptime_in_seconds:11554 uptime_in_days:0 hz:10 lru_clock:16651447 config_file: # Clients connected_clients:1 client-longest_output_list:0 client-biggest_input_buf:0 blocked_clients:0 # Memory used_memory:589016 used_memory_human:575.21K used_memory_rss:2461696 used_memory_peak:667312 used_memory_peak_human:651.67K used_memory_lua:33792 mem_fragmentation_ratio:4.18 mem_allocator:jemalloc-3.6.0 # Persistence loading:0 rdb_changes_since_last_save:3 rdb_bgsave_in_progress:0 rdb_last_save_time:1409158561 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:0 rdb_current_bgsave_time_sec:-1 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 # Stats total_connections_received:24 total_commands_processed:294 instantaneous_ops_per_sec:0 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 evicted_keys:0 keyspace_hits:41 keyspace_misses:82 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:264 # Replication role:master connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 # CPU used_cpu_sys:10.49 used_cpu_user:4.96 used_cpu_sys_children:0.00 used_cpu_user_children:0.01 # Keyspace db0:keys=94,expires=1,avg_ttl=41638810 db1:keys=1,expires=0,avg_ttl=0 db3:keys=1,expires=0,avg_ttl=0
为例,其每部分的含义为:
Server
- redis_version: Redis的版本号。
- redis_git_sha1: Redis源代码的Git提交SHA1。
- redis_git_dirty: Redis源代码是否有未提交的修改。
- redis_build_id: Redis的构建ID。
- redis_mode: Redis的运行模式,这里是独立运行(standalone)。
- os: Redis运行的操作系统。
- arch_bits: 操作系统的位数。
- multiplexing_api: Redis使用的事件处理API。
- gcc_version: 编译Redis时使用的GCC版本。
- process_id: Redis服务器进程的ID。
- run_id: Redis服务器运行实例的唯一标识。
- tcp_port: Redis监听的TCP端口。
- uptime_in_seconds: Redis服务器已运行的秒数。
- uptime_in_days: Redis服务器已运行的天数。
- hz: Redis每秒执行事件的频率。
- lru_clock: 最近使用LRU(Least Recently Used)算法的时钟。
Clients
- connected_clients: 当前连接的客户端数量。
- client-longest_output_list: 客户端输出缓冲区中最长的列表。
- client-biggest_input_buf: 客户端输入缓冲区中最大的缓冲区。
- blocked_clients: 正在等待阻塞命令(如BLPOP)的客户端数量。
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: Redis使用的内存分配器。
Persistence
- loading: 是否在载入持久化文件。
- rdb_changes_since_last_save: 上次保存快照以来发生的修改次数。
- rdb_bgsave_in_progress: 是否正在进行后台保存。
- rdb_last_save_time: 上次成功保存快照的时间戳。
- rdb_last_bgsave_status: 上次后台保存操作的状态。
- rdb_last_bgsave_time_sec: 上次后台保存操作耗时(秒)。
- aof_enabled: 是否启用AOF(Append Only File)持久化。
- 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: 每秒执行的命令数。
- rejected_connections: 拒绝的连接数。
- sync_full: 完全同步命令的数量。
- sync_partial_ok: 部分同步成功的数量。
- sync_partial_err: 部分同步失败的数量。
- expired_keys: 过期的键数量。
- evicted_keys: 逐出的键数量。
- keyspace_hits: 命中键空间的次数。
- keyspace_misses: 键空间未命中的次数。
Replication
- role: Redis的角色,这里是主节点(master)。
- 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: Redis后台子进程消耗的系统CPU时间。
- used_cpu_user_children: Redis后台子进程消耗的用户CPU时间。
Keyspace
- dbX: 每个数据库(db0, db1, db3等)的统计信息,包括键的数量(keys)、过期键的数量(expires)、平均TTL(avg_ttl)。
- 其中以下的信息是其中比较关键的,它们提供了关于Redis服务器的关键性能和状态信息:
-
Memory(内存)
- used_memory: 当前使用的内存总量。
- used_memory_human: 人类可读的内存使用量。
- used_memory_peak: 内存使用的峰值。
- mem_fragmentation_ratio: 内存碎片比率。
这些信息对于监控Redis服务器的内存使用情况至关重要,帮助你了解服务器是否需要进行内存优化或是否存在内存碎片问题。
-
Stats(统计信息)
- total_connections_received: 收到的连接总数。
- total_commands_processed: 处理的命令总数。
- instantaneous_ops_per_sec: 每秒执行的命令数。
- keyspace_hits: 键空间的命中次数。
- keyspace_misses: 键空间的未命中次数。
这些统计信息可以告诉你Redis服务器的工作负载和命令执行效率,以及键空间缓存的命中率,有助于优化查询和操作。
-
Persistence(持久化)
- rdb_last_bgsave_status: 上次RDB后台保存操作的状态。
- aof_last_write_status: 上次AOF写入操作的状态。
如果你的Redis实例启用了持久化,这些信息可以帮助你监控和确认持久化操作的状态,确保数据安全性和持久化机制的正常运行。
-
Replication(复制)
- role: Redis服务器的角色。
- connected_slaves: 连接的从节点数量。
如果你在使用Redis的复制功能,这些信息将告诉你主从复制的状态和连接情况。
-
CPU(CPU使用情况)
- used_cpu_sys: Redis服务器消耗的系统CPU时间。
- used_cpu_user: Redis服务器消耗的用户CPU时间。
如果你需要监控Redis服务器的CPU使用情况,这些信息可以帮助你了解Redis对系统CPU资源的实际消耗。