Redis中的Info指令有什么用

36次阅读
没有评论

共计 9069 个字符,预计需要花费 23 分钟才能阅读完成。

这篇文章主要介绍了 Redis 中的 Info 指令有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

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

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

server: Redis 服务器的一般信息

clients: 客户端的连接部分

memory: 内存消耗相关信息

persistence: RDB 和 AOF 相关信息

stats: 一般统计

replication: 主 / 从复制信息

cpu: 统计 CPU 的消耗

commandstats: Redis 命令统计

cluster: Redis 集群信息

keyspace: 数据库的相关统计

它也可以采取以下值:

all: 返回所有信息

default: 值返回默认设置的信息

如果没有使用任何参数时,默认为 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 SHA1redis_git_dirtyGit dirty flagredis_build_id 构建 IDredis_mode 服务器模式(standalone,sentinel 或者 cluster)osRedis 服务器的宿主操作系统 arch_bits 架构(32 或 64 位)multiplexing_apiRedis 所使用的事件处理机制 atomicvar_apiRedis 使用的 Atomicvar APIgcc_version 编译 Redis 时所使用的 GCC 版本 process_id 服务器进程的 PIDrun_idRedis 服务器的随机标识符(用于 Sentinel 和集群)tcp_portTCP/IP 监听端口 uptime_in_seconds 自 Redis 服务器启动以来,经过的秒数 uptime_in_days 自 Redis 服务器启动以来,经过的天数 hz 服务器的频率设置 lru_clock 以分钟为单位进行自增的时钟,用于 LRU 管理 executable 服务器的可执行文件路径 config_file 配置文件路径

info clients

下面是所有 clients 相关的信息

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

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 或者 tcmallocactive_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 的值可以验证这种情况是否发生。

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

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

info CPU

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

参数名含义 used_cpu_sys 由 Redis 服务器消耗的系统 CPUused_cpu_user 由 Redis 服务器消耗的用户 CPUused_cpu_sys_children 由后台进程消耗的系统 CPUused_cpu_user_children 由后台进程消耗的用户 CPU

info cluster

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

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

info keyspace

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

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

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“Redis 中的 Info 指令有什么用”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计9069字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)