• 技术文章 >数据库 >Redis

    深入解析Redis中的Info指令

    青灯夜游青灯夜游2021-10-14 10:57:10转载119
    本篇文章带大家了解一下Redis中的Info指令,希望对大家有所帮助!

    Redis提供了info指令,它会返回关于Redis服务器的各种信息和统计数值。在使用Redis时,时常会遇到一些疑难杂症需要我们去排查,这个时候我们可以通过info指令来获取Redis的运行状态,然后进行问题的排查。【相关推荐:Redis视频教程

    通过给定可选的参数 section ,可以让命令只返回某一部分的信息:

    它也可以采取以下值:

    如果没有使用任何参数时,默认为default,返回所有的信息。

    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

    info server

    下面是所有 server 相关的信息

    参数名含义
    redis_versionRedis 服务器版本
    redis_git_sha1Git SHA1
    redis_git_dirtyGit dirty flag
    redis_build_id构建ID
    redis_mode服务器模式(standalone,sentinel或者cluster)
    osRedis 服务器的宿主操作系统
    arch_bits架构(32 或 64 位)
    multiplexing_apiRedis 所使用的事件处理机制
    atomicvar_apiRedis使用的Atomicvar API
    gcc_version编译 Redis 时所使用的 GCC 版本
    process_id服务器进程的 PID
    run_idRedis 服务器的随机标识符(用于 Sentinel 和集群)
    tcp_portTCP/IP 监听端口
    uptime_in_seconds自 Redis 服务器启动以来,经过的秒数
    uptime_in_days自 Redis 服务器启动以来,经过的天数
    hz服务器的频率设置
    lru_clock以分钟为单位进行自增的时钟,用于 LRU 管理
    executable服务器的可执行文件路径
    config_file配置文件路径

    1.png

    info clients

    下面是所有 clients 相关的信息

    参数名含义
    connected_clients已连接客户端的数量(不包括通过从属服务器连接的客户端)
    client_longest_output_list当前连接的客户端当中,最长的输出列表
    client_biggest_input_buf当前连接的客户端当中,最大输入缓存
    blocked_clients正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量

    2.png

    info memory

    下面是所有 memory 相关的信息

    参数名含义
    used_memory由 Redis 分配器分配的内存总量,以字节(byte)为单位
    used_memory_human以人类可读的格式返回 Redis 分配的内存总量
    used_memory_rss从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
    used_memory_peakRedis 的内存消耗峰值(以字节为单位)
    used_memory_peak_human以人类可读的格式返回 Redis 的内存消耗峰值
    used_memory_peak_perc使用内存占峰值内存的百分比
    used_memory_overhead服务器为管理其内部数据结构而分配的所有开销的总和(以字节为单位)
    used_memory_startupRedis在启动时消耗的初始内存大小(以字节为单位)
    used_memory_dataset以字节为单位的数据集大小(used_memory减去used_memory_overhead)
    used_memory_dataset_percused_memory_dataset占净内存使用量的百分比(used_memory减去used_memory_startup)
    total_system_memoryRedis主机具有的内存总量
    total_system_memory_human以人类可读的格式返回 Redis主机具有的内存总量
    used_memory_luaLua 引擎所使用的内存大小(以字节为单位)
    used_memory_lua_human以人类可读的格式返回 Lua 引擎所使用的内存大小
    maxmemorymaxmemory配置指令的值
    maxmemory_human以人类可读的格式返回 maxmemory配置指令的值
    maxmemory_policymaxmemory-policy配置指令的值
    mem_fragmentation_ratioused_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 的值可以验证这种情况是否发生。

    3.png

    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以来,在数据集中产生某种变化的操作的数量。

    4.png

    AOF

    如果启用了AOF,则会添加以下这些额外的字段:

    参数名含义
    aof_current_size当前的AOF文件大小
    aof_base_size上次启动或重写时的AOF文件大小
    aof_pending_rewrite指示AOF重写操作是否会在当前RDB保存操作完成后立即执行的标志。
    aof_buffer_lengthAOF缓冲区大小
    aof_rewrite_buffer_lengthAOF重写缓冲区大小
    aof_pending_bio_fsync在后台IO队列中等待fsync处理的任务数
    aof_delayed_fsync延迟fsync计数器

    loading

    如果正在执行加载操作,将会添加这些额外的字段:

    参数名含义
    loading_start_time加载操作的开始时间(基于纪元的时间戳)
    loading_total_bytes文件总大小
    loading_loaded_bytes已经加载的字节数
    loading_loaded_perc已经加载的百分比
    loading_eta_seconds预计加载完成所需的剩余秒数

    status

    下面是所有 stats 相关的信息:

    参数名含义
    total_connections_received服务器接受的连接总数
    total_commands_processed服务器处理的命令总数
    instantaneous_ops_per_sec每秒处理的命令数
    rejected_connections由于maxclients限制而拒绝的连接数
    expired_keyskey到期事件的总数
    evicted_keys由于maxmemory限制而导致被驱逐的key的数量
    keyspace_hits在主字典中成功查找到key的次数
    keyspace_misses在主字典中查找key失败的次数
    pubsub_channels拥有客户端订阅的全局pub/sub通道数
    pubsub_patterns拥有客户端订阅的全局pub/sub模式数
    latest_fork_usec最新fork操作的持续时间,以微秒为单位

    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,地址,端口号,状态

    5.png

    info CPU

    下面是所有 cpu 相关的信息:

    参数名含义
    used_cpu_sys由Redis服务器消耗的系统CPU
    used_cpu_user由Redis服务器消耗的用户CPU
    used_cpu_sys_children由后台进程消耗的系统CPU
    used_cpu_user_children由后台进程消耗的用户CPU

    6.png

    info cluster

    cluster部分当前只包含一个唯一的字段:

    参数名含义
    cluster_enabled表示已启用Redis集群

    7.png

    info keyspace

    keyspace部分提供有关每个数据库的主字典的统计,统计信息是key的总数和过期的key的总数,对于每个数据库,提供以下行:

    参数名含义
    keyspacedbXXX keys=XXX,expires=XXX

    8.png

    本文转载自:https://juejin.cn/post/7014398047916883998

    更多编程相关知识,请访问:编程视频!!

    以上就是深入解析Redis中的Info指令的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:Redis Info指令
    上一篇:一文详解Redis中的LRU算法 下一篇:带你吃透Redis中的主从复制、Sentinel、集群
    线上培训班

    相关文章推荐

    • 汇总30个Redis常见问题!• Redis高频面试题分享,带你横扫核心知识点!• 深入了解Redis中主从架构数据一致性同步原理• Redis中如何实现无畏宕机快速恢复和持久化• 一文了解redis中RDB和AOP持久化• 一起来聊聊redis中的主从复制

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网