《Redis精通系列》|Redis精通系列——info 指令用法

本文已收录于专栏
??《Redis精通系列》??
上千人点赞收藏,全套Redis学习资料,大厂必备技能!
目录
1、简介
2、info/info all
3、info server
4、info clients
5、info memory
6、info persistence
7、AOF
8、loading
9、status
10、info replication
11、info CPU
12、info cluster
13、info keyspace
1、简介 Redis提供了info指令,它会返回关于Redis服务器的各种信息和统计数值。在使用Redis时,时常会遇到一些疑难杂症需要我们去排查,这个时候我们可以通过info指令来获取Redis的运行状态,然后进行问题的排查。
?
通过给定可选的参数 section ,可以让命令只返回某一部分的信息:

  1. server: Redis服务器的一般信息
  2. clients: 客户端的连接部分
  3. memory: 内存消耗相关信息
  4. persistence: RDB和AOF相关信息
  5. stats: 一般统计
  6. replication: 主/从复制信息
  7. cpu: 统计CPU的消耗
  8. commandstats: Redis命令统计
  9. cluster: Redis集群信息
  10. keyspace: 数据库的相关统计
它也可以采取以下值:
  • all: 返回所有信息
  • default: 值返回默认设置的信息
如果没有使用任何参数时,默认为default,返回所有的信息。
?
2、info/info all 返回Redis服务所有的信息
# Server redis_version:6.2.4 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:fa652e749408dcfd redis_mode:standalone os:Linux 3.10.0-327.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:c11-builtin gcc_version:9.3.1 process_id:4617 process_supervised:no run_id:9662797d01b55345cd6cabad38d102e27db19e66 tcp_port:6379 server_time_usec:1632494557942546 uptime_in_seconds:4 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:5104605 executable:/usr/local/soft/redis-6.2.4/src/redis-server config_file:/usr/local/soft/redis-6.2.4/redis.conf io_threads_active:0# Clients connected_clients:1 cluster_connections:0 maxclients:10000 client_recent_max_input_buffer:16 client_recent_max_output_buffer:0 blocked_clients:0 tracking_clients:0 clients_in_timeout_table:0# Memory used_memory:874728 used_memory_human:854.23K used_memory_rss:10207232 used_memory_rss_human:9.73M used_memory_peak:932800 used_memory_peak_human:910.94K used_memory_peak_perc:93.77% used_memory_overhead:830808 used_memory_startup:810168 used_memory_dataset:43920 used_memory_dataset_perc:68.03% allocator_allocated:1036080 allocator_active:1380352 allocator_resident:3932160 total_system_memory:1913507840 total_system_memory_human:1.78G used_memory_lua:37888 used_memory_lua_human:37.00K used_memory_scripts:0 used_memory_scripts_human:0B number_of_cached_scripts:0 maxmemory:104857600 maxmemory_human:100.00M maxmemory_policy:volatile-lfu allocator_frag_ratio:1.33 allocator_frag_bytes:344272 allocator_rss_ratio:2.85 allocator_rss_bytes:2551808 rss_overhead_ratio:2.60 rss_overhead_bytes:6275072 mem_fragmentation_ratio:12.27 mem_fragmentation_bytes:9375272 mem_not_counted_for_evict:0 mem_replication_backlog:0 mem_clients_slaves:0 mem_clients_normal:20496 mem_aof_buffer:0 mem_allocator:jemalloc-5.1.0 active_defrag_running:0 lazyfree_pending_objects:0 lazyfreed_objects:0# Persistence loading: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:0 rdb_bgsave_in_progress:0 rdb_last_save_time:1632494553 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:-1 rdb_current_bgsave_time_sec:-1 rdb_last_cow_size: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_last_write_status:ok aof_last_cow_size:0 module_fork_in_progress:0 module_fork_last_cow_size:0# Stats total_connections_received:1 total_commands_processed:1 instantaneous_ops_per_sec:0 total_net_input_bytes:31 total_net_output_bytes:20324 instantaneous_input_kbps:0.00 instantaneous_output_kbps:0.00 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 expired_stale_perc:0.00 expired_time_cap_reached_count:0 expire_cycle_cpu_milliseconds:0 evicted_keys:0 keyspace_hits:0 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0 total_forks:0 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 tracking_total_keys:0 tracking_total_items:0 tracking_total_prefixes:0 unexpected_error_replies:0 total_error_replies:0 dump_payload_sanitizations:0 total_reads_processed:2 total_writes_processed:1 io_threaded_reads_processed:0 io_threaded_writes_processed:0# Replication role:master connected_slaves:0 master_failover_state:no-failover master_replid:5b43385d46f4a601c025cb2c4ce5706b0b77db86 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:0.030666 used_cpu_user:0.000000 used_cpu_sys_children:0.000000 used_cpu_user_children:0.000000 used_cpu_sys_main_thread:0.030570 used_cpu_user_main_thread:0.000000# Modules# Errorstats# Cluster cluster_enabled:0# Keyspace db0:keys=2,expires=0,avg_ttl=0

3、info server 下面是所有 server 相关的信息
参数名 含义
redis_version Redis 服务器版本
redis_git_sha1 Git SHA1
redis_git_dirty Git dirty flag
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
run_id Redis 服务器的随机标识符(用于 Sentinel 和集群)
tcp_port TCP/IP 监听端口
uptime_in_seconds 自 Redis 服务器启动以来,经过的秒数
uptime_in_days 自 Redis 服务器启动以来,经过的天数
hz 服务器的频率设置
lru_clock 以分钟为单位进行自增的时钟,用于 LRU 管理
executable 服务器的可执行文件路径
config_file 配置文件路径
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片


4、info clients 下面是所有 clients 相关的信息
参数名 含义
connected_clients 已连接客户端的数量(不包括通过从属服务器连接的客户端)
client_longest_output_list 当前连接的客户端当中,最长的输出列表
client_biggest_input_buf 当前连接的客户端当中,最大输入缓存
blocked_clients 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片




5、info memory 下面是所有 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 以字节为单位的数据集大小(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 以人类可读的格式返回 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)
在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。内存碎片的比率可以通过mem_fragmentation_ratio 的值看出。当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。由于Redis无法控制其分配的内存如何映射到内存页,因此常住内存(used_memory_rss)很高通常是内存使用量激增的结果。当 Redis 释放内存时,内存将返回给分配器,分配器可能会,也可能不会,将内存返还给操作系统。如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。查看 used_memory_peak 的值可以验证这种情况是否发生。
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片

6、info persistence 下面是所有 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以来,在数据集中产生某种变化的操作的数量。
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片

7、AOF 【《Redis精通系列》|Redis精通系列——info 指令用法】如果启用了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计数器
8、loading 如果正在执行加载操作,将会添加这些额外的字段:
参数名 含义
loading_start_time 加载操作的开始时间(基于纪元的时间戳)
loading_total_bytes 文件总大小
loading_loaded_bytes 已经加载的字节数
loading_loaded_perc 已经加载的百分比
loading_eta_seconds 预计加载完成所需的剩余秒数
9、status 下面是所有 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操作的持续时间,以微秒为单位
10、info replication 下面是所有 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,地址,端口号,状态
?
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片

11、info CPU 下面是所有 cpu 相关的信息:
参数名 含义
used_cpu_sys 由Redis服务器消耗的系统CPU
used_cpu_user 由Redis服务器消耗的用户CPU
used_cpu_sys_children 由后台进程消耗的系统CPU
used_cpu_user_children 由后台进程消耗的用户CPU
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片

12、info cluster cluster部分当前只包含一个唯一的字段:
参数名 含义
cluster_enabled 表示已启用Redis集群
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片

13、info keyspace keyspace部分提供有关每个数据库的主字典的统计,统计信息是key的总数和过期的key的总数,对于每个数据库,提供以下行:
参数名 含义
keyspace dbXXX keys=XXX,expires=XXX
《Redis精通系列》|Redis精通系列——info 指令用法
文章图片


    推荐阅读