【死磕 Redis】—– info 命令详解

寵の児 提交于 2020-09-26 12:18:22

原文出处:Java 技术驿站chenssy


Redis 提供了一个非常有用的查看状态信息的命令:info。它以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。使用方法有如下三种:

info:部分Redis系统状态统计信息。
info all:全部Redis系统状态统计信息。
info section:某一块的系统状态统计信息,其中section可以忽略大小写。

详细内容如下表格:

参数名 说明
server 获取 server 信息
clients 获取 clients 信息,如客户端连接数等
memory 获取 server 的内存信息,包括当前内存消耗、内存使用峰值
persistence 获取 server 的持久化配置信息
stats 获取 server 的一些基本统计信息,如处理过的连接数量等
replication 获取 server 的主从配置信息
cpu 获取 server 的 CPU 使用信息
keyspace 获取 server 中各个 DB 的 key 的数量
cluster 获取集群节点信息,仅在开启集群后可见
commandstas 获取每种命令的统计信息

其中 memory,stats,clients,keyspace 是 Redis 运行时经常要关注的信息。

server

获取 server 信息,包括 version, OS, port 等信息

属性名 属性值 说明
redis_version 5.0.3 Redis 服务版本号
redis_git_sha1 00000000 Git SGA1
redis_git_dirty 0 Git dirty flag
redis_build_id 89e87c8197752890 Redis build ID
redis_mode standalone 运行模式,分为:standalone、sentinel、cluster
os Darwin 18.2.0 x86_64 Redis 所在机器的操作系统
arch_bits 64 架构(32位或者64位)
multiplexing_api kqueue Redis 所使用的事件处理机制
atomicvar_api atomic-builtin Atomicvar API
gcc_version 4.2.1 编译 Redis 时所使用的 GCC 版本
process_id 40163 服务进程 ID
run_id c4f8bb49f8214f406725136e6f589b46502a0e00 run_id
tcp_port 6379 监听端口
uptime_in_seconds 496059 自 Redis 服务器启动已来,运行的秒数
uptime_in_days 5 自 Redis 服务启动已来,运行的天数
hz 10 serverCron 每秒运行次数
configured_hz 10
lru_clock 5452491 以分钟为单位进行自增的时钟,用于 LRU 管理
executable /../redis-5.0.3/src/./redis-server 运行文件
config_file /../redis-5.0.3/redis.conf 配置文件

clients

获取 clients 信息,如客户端连接数等

属性名 属性值 说明
connected_clients 1 当前客户端连接数
client_recent_max_input_buffer 2 当前连接的客户端当中,最大输入缓存
client_recent_max_output_buffer 0 当前连接的客户端当中,最长的输出列表
blocked_clients 0 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量

memory

获取 server 的内存信息,包括当前内存消耗、内存使用峰值

属性名 属性值 说明
used_memory 18813680 由 redis 分配器(标准libc,jemalloc或其他分配器,例如tcmalloc)分配的内存总量,以字节(byte)为单位
used_memory_human 17.94M redis 分配的内存总量
used_memory_rss 1945600 从操作系统的角度,Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top、ps 等命令的输出一致。
used_memory_rss_human 1.86M 操作系统角度,返回 redis 分配的内存总量
used_memory_peak 18900752 redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human 18.03M Redis 的内存消耗峰值
used_memory_peak_perc 99.54% used_memory_peak在used_memory中所占的百分比
used_memory_overhead 11135798 分配用于管理其内部数据结构的所有开销的总字节数
used_memory_startup 988448 启动时消耗的初始内存量(以字节为单位)
used_memory_dataset 7677882 数据集的大小(以字节为单位,used_memory - used_memory_overhead)
used_memory_dataset_perc 43.07% used_memory_dataset在净内存(used_memory-used_memory_startup)使用量中所占的百分比
allocator_allocated 18780336 分配器分配的内存
allocator_active 1907712 分配器活跃的内存
allocator_resident 1907712 分配器常驻的内存
total_system_memory 34359738368 主机拥有的内存总量
total_system_memory_human 32.00G 主机拥有的内存总量
used_memory_lua 37888 Lua引擎使用的字节数
used_memory_lua_human 37.00K 以可读的格式返回Lua引擎使用内存
used_memory_scripts 0
used_memory_scripts_human 0B
number_of_cached_scripts 0
maxmemory 0 配置设置的最大可使用内存值,默认0,不限制
maxmemory_human 0B 以可读的格式返回最大可使用内存值
maxmemory_policy noeviction 内存容量超过maxmemory后的处理策略,noeviction当内存使用达到阈值的时候,所有引起申请内存的命令会报错
allocator_frag_ratio 0.10 分配器的碎片率
allocator_frag_bytes 18446744073692678992 分配器的碎片大小(以字节为单位)
allocator_rss_ratio 1.00 分配器常驻内存比例
allocator_rss_bytes 0 分配器的常驻内存大小(以字节为单位)
rss_overhead_ratio 1.02 常驻内存开销比例
rss_overhead_bytes 37888 常驻内存开销大小(以字节为单位)
mem_fragmentation_ratio 0.10 内存碎片率,used_memory_rss 和 used_memory 之间的比率
mem_fragmentation_bytes -16834736 内存碎片的大小(以字节为单位)
mem_not_counted_for_evict 112 被驱逐的大小
mem_replication_backlog 0 repl_backlog
mem_clients_slaves 0 clients_slaves
mem_clients_normal 49694 clients_normal
mem_aof_buffer 112 aof时,占用的缓冲
mem_allocator libc 内存分配器(在编译时选择)
active_defrag_running 0 碎片整理是否处于活动状态
lazyfree_pending_objects 0 等待释放的对象数(由于使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHALL)

Persistence

获取 server 的持久化配置信息

属性名 属性值 说明
loading 0 记录服务器是否正在载入持久化文件
rdb_changes_since_last_save 0 最近一次成功创建持久化文件之后,经过了多少秒
rdb_bgsave_in_progress 0 记录了服务器是否正在创建 RDB 文件
rdb_last_save_time 1582508875 最近一次成功创建 RDB 文件的 UNIX 时间戳
rdb_last_bgsave_status ok 记录最近一次创建 RDB 文件的状态,是成功还是失败
rdb_last_bgsave_time_sec 1 记录了最近一次创建 RDB 文件耗费的秒数
rdb_current_bgsave_time_sec -1 如果正在创建 RDB 文件,记录当前的创建操作已经耗费的秒数
rdb_last_cow_size 0 上一次RBD保存操作期间写时复制的大小(以字节为单位)
aof_enabled 1 AOF是否开启
aof_rewrite_in_progress 0 记录了是否正在创建 AOF 文件
aof_rewrite_scheduled 0 记录了 RDB 文件创建完毕之后,是否需要执行 AOF 重写操作
aof_last_rewrite_time_sec -1 最近一次创建 AOF 文件耗费的秒数
aof_current_rewrite_time_sec -1 如果正在创建 AOF 文件,那么记录当前的创建操作耗费的秒数
aof_last_bgrewrite_status ok 记录了最近一次创建 AOF 文件的状态,是成功还是失败
aof_last_write_status ok AOF的最后写入操作的状态,是成功还是失败
aof_last_cow_size 0 上一次AOF保存操作期间写时复制的大小(以字节为单位)
aof_current_size 4747340 AOF 文件当前的大小
aof_base_size 4746996 最近一次启动或重写时的AOF文件大小
aof_pending_rewrite 0 记录了是否有 AOF 重写操作在等待 RDB 文件创建完毕之后执行
aof_buffer_length 0 AOF缓冲区的大小
aof_rewrite_buffer_length 0 AOF 重写缓冲区的大小
aof_pending_bio_fsync 0 后台 I/O 队列里面,等待执行的 fsync 数量
aof_delayed_fsync 0 被延迟的 fsync 调用数量,如果该值比较大,可以开启参数:no-appendfsync-on-rewrite=yes

stats

获取 server 的一些基本统计信息,如处理过的连接数量等

属性名 属性值 说明
total_connections_received 11 服务器接受的连接总数
total_commands_processed 48 服务器已执行的命令数量
instantaneous_ops_per_sec 0 服务器每秒钟执行的命令数量
total_net_input_bytes 1312 启动以来,流入的字节总数
total_net_output_bytes 114800 启动以来,流出的字节总数
instantaneous_input_kbps 0.00 接收输入的速率(每秒)
instantaneous_output_kbps 0.00 输出的速率(每秒)
rejected_connections 0 由于maxclients限制而被拒绝的连接数
sync_full 0 与slave full sync的次数
sync_partial_ok 0 接受的部分重新同步(psync)请求的数量
sync_partial_err 0 被拒绝的部分重新同步(psync)请求的数量
expired_keys 0 key过期事件总数
expired_stale_perc 0.00 过期的比率
expired_time_cap_reached_count 0 过期计数
evicted_keys 0 由于最大内存限制而被驱逐的key数量
keyspace_hits 6 key命中次数
keyspace_misses 0 key未命中次数
pubsub_channels 0 发布/订阅频道的数量
pubsub_patterns 0 发布/订阅的模式数量
latest_fork_usec 803 最近一次 fork() 操作耗费的毫秒数(以微秒为单位)
migrate_cached_sockets 0 为迁移而打开的套接字数
slave_expires_tracked_keys 0 跟踪过期key数量(仅适用于可写从)
active_defrag_hits 0 活跃碎片执行的值重新分配的数量
active_defrag_misses 0 活跃碎片执行的中止值重新分配的数量
active_defrag_key_hits 0 活跃碎片整理的key数
active_defrag_key_misses 0 活跃碎片整理过程跳过的key数

replication

获取 server 的主从配置信息

属性名 属性值 说明
role master 角色(master、slave),一个从服务器也可能是另一个服务器的主服务器
connected_slaves 1 连接slave实例的个数
slave0 ip=127.0.0.1,port=6380,state=online,offset=14,lag=1 连接的slave的信息
master_replid 899b9814f2e841ca194dcc2620c83aa5df0abc10 服务器的复制ID
master_replid2 0000000000000000000000000000000000000000 第二服务器复制ID,用于故障转移后的PSYNC,用于集群等高可用之后主从节点的互换
master_repl_offset 14 复制偏移量1
second_repl_offset -1 第二服务器复制偏移量2
repl_backlog_active 1 复制缓冲区状态
repl_backlog_size 1048576 复制缓冲区的大小(以字节为单位)
repl_backlog_first_byte_offset 1 复制缓冲区的偏移量,标识当前缓冲区可用范围
repl_backlog_histlen 14 复制缓冲区中数据的大小(以字节为单位)

如果是从节点会有如下信息:

属性名 属性值 说明
master_host 127.0.0.1 Master IP
master_port 6379 Master Port
master_link_status up Master的连接状态(up/down)
master_last_io_seconds_ago 2 最近一次主从交互之后的秒数
master_sync_in_progress 0 表示从服务器是否一直在与主服务器进行同步
slave_repl_offset 14 复制偏移量
slave_priority 100 从服务器的优先级
slave_read_only 1 从服务是否只读

CPU

获取 server 的 CPU 使用信息

属性名 属性值 说明
used_cpu_sys 2.559564 消耗的系统CPU
used_cpu_user 0.878593 消耗的用户CPU
used_cpu_sys_children 0.001414 后台进程占用的系统CPU
used_cpu_user_children 0.000510 后台进程占用的用户CPU

keyspace

获取 server 中各个 DB 的 key 的数量

属性名 属性值 说明
db0 keys=4,expires=0,avg_ttl=0 db0 数据库的基本信息
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!