redis:info

学习自:Redis之info指令_redis-cli info_多动手,勤思考的博客-CSDN博客

官网:INFO | Redis

场景

redis提供了info指令,可以帮助用户查询redis服务运行期间内部的参数以及实时信息,根据这些信息可以帮助用户诊断问题查看服务负载、内存压力等信息。

info指令显示的信息繁多,分为9大块,每块都有非常多的参数:

  • server:服务器
  • client:客户端相关信息
  • memory:服务器运行内存统计数据
  • persistence:持久化信息
  • stats:通用统计数据
  • replication:主从复制
  • cpu:CPU使用情况
  • cluster:集群模式
  • keySpace:K-V对的数量统计信息


输入info,就可以一次性获取全部信息,也可以用info 模块获取指定模块的信息:

127.0.0.1:6379> info
# Server
redis_version:6.2.3
redis_git_sha1:00000000
redis_git_dirty:0
......

Server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Server
redis_version:6.2.13
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:dd215677c6c7f298
redis_mode:standalone
os:Linux 3.10.0-1160.el7.x86_64 x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:1766
process_supervised:no
run_id:41dd5db279714d02d8add9f958b9082f65e75814
tcp_port:6379
server_time_usec:1693448751297415
uptime_in_seconds:3890
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:15727151
executable:/usr/local/redis/redis-6.2.13/redis-server
config_file:/usr/local/redis/redis-6.2.13/redis.conf
io_threads_active:0  

各项说明

应用场景

说明

redis_version   redis版本
run_id

每次重启会导致改变

s检测到m的id发生变化就会进行全量复制

可以用redis-cli debug reload实现不改变ID重新加载RDB

节点ID

 

Client

1
2
3
4
5
6
7
8
9
# Clients
connected_clients:2
cluster_connections:0
maxclients:10000
client_recent_max_input_buffer:24
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0  

各项说明

说明

connected_clients 当前连接的客户端数量
maxclients 最大允许连接的客户端数量(在conf中设置)
client_recent_max_output_buffer 最近output buffer最大占用量
client_recent_max_input_buffer 最近input buffer最大占用量
blocked_clients 正在执行阻塞命令(如blpop、brpop)的客户端个数

关于C端的信息,还可以看:redis:客户端client

Persistence

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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:20
rdb_bgsave_in_progress:0
rdb_last_save_time:1693210918
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:1
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
aof_current_size:1356
aof_base_size:1356
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0  <br>aof-load-truncated yes

各项说明

应用场景

说明

rdb_* 当bgsave完成后,子进程会向父进程发信号表示完成,此时父进程会更新rdb开头的状态信息
rdb_last_save_time bgsave后,子进程创建RDB文件 最后一次生成RDB的时间
rdb_bgsave_in_progress 单机多Redis部署时,监控子进程运行状况的度量指标 bgsave子进程是否正在运行
rdb_current_bgsave_time_sec 当前运行bgsave的时间,-1代表未运行
aof_* 当新AOF写入后,子进程会向父进程发送信号表示完成,此时父进程会更新aof开头的统计信息
aof_enable    
aof_current_size AOF重写的自动触发时机(也是子进程度量指标) 当前AOF文件空间
aof_base_size 上一次重写后AOF文件空间
aof_delayed_fsync AOF追加阻塞事件发生时 AOF阻塞问题发生次数
aof-load-truncated 发生停电事故导致AOF文件尾不完整时 是否忽略AOF不完整尾部的情况

 

Stats

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Stats
total_connections_received:1
total_commands_processed:2
instantaneous_ops_per_sec:0
total_net_input_bytes:59
total_net_output_bytes:20329
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:3
total_writes_processed:2
io_threaded_reads_processed:0
io_threaded_writes_processed:0  

各项说明

应用环境

说明

total_connections_received C端指标 Redis启动以来处理的C端连接总数
rejected_connections Redis启动以来拒绝的客户端连接总数,需要重点监控
latest_fork_usec 执行bgsave命令时,父进程会执行fork创建子进程 最近一个fork操作的耗时,单位μs

 

replication:主从复制

在m和s上的表现不同

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Replication master
role:master
connected_slaves:1
slave0:ip=192.168.10.11,port=6379,state=online,offset=42,lag=0
master_failover_state:no-failover
master_replid:6ba7f0a7f358301c297665704467d03f936528e7
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:42
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:42
 
 
# slave
role:slave
master_host:192.168.10.20
master_port:6379
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_read_repl_offset:562
slave_repl_offset:562
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:3f09c98bd0e88dc4cc924a7c224a4c9e1d453834
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:562
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:549
repl_backlog_histlen:14

  

各项

应用环境

说明

role  

如果该服务器是master,那该项就是master;否则就是slave。

s节点

master_host   m节点ip
master_port m节点port
master_link_status m节点的连接状态
 slave_repl_offset 当前s节点的数据偏移量(在收到m发送的命令后,该值会累加)

m节点

slave0 与m相连的s节点的信息 lag代表最近一次通信延迟
master_failover_state   复制转移状态
master_replid   redis服务器的主从复制ID
master_replid2   备选的主从复制ID
master_repl_offset   当前m节点数据偏移量
second_repl_offset   接受来自哪个ID的偏移
repl_blacklog_active 复制缓冲区 复制缓冲区是否启用
repl_backlog_size 复制缓冲区最大长度
repl_backlog_first_byte_offset 起始偏移量,用于计算当前缓冲区的可用范围
repl_backlog_histlen 缓冲区已经存入的数据有效长度
     

复制缓冲区:

复制积压缓冲区是保存在m上的一个长度固定的队列,默认大小1MB,当m与s相连,并且响应写命令时,除了把该命令发给s,还会将之写入复制积压缓冲区

 缓冲区的本质是先进先出的定长队列,所以可以实现保存最近已复制数据的功能,用于不救部分复制复制命令丢失的数据。

 

结合grep可实现定向查找:

每条执行多少次指令:

redis-cli info stats | grep ops
 
instantaneous_ops_per_sec:12

instantaneous_ops_per_sec(每秒瞬时运行次数)值为12,意味着客户端每秒发送12条指令到服务端执行,如果ops过高,可以通过monitor指令观察哪些Key会被访问比较频繁:

root@f5cd3ecb4cd8:/data# redis-cli monitor
OK
1640764159.129379 [0 127.0.0.1:34272] "COMMAND"
1640764160.890701 [0 127.0.0.1:34272] "set" "hello" "1"

monitor实时显示redis正在执行的指令,如果ops很高,那么控制就会瞬时输出很多指令

 

posted @   ShineLe  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示