在使用 Redis 时,时常会遇到很多问题需要诊断,在诊断之前需要了解 Redis 的运行状态,通过强大的 Info 指令,你可以清晰地知道 Redis 内部一系列运行参数。Info 指令显示的信息非常繁多,分为 9 大块,每个块都有非常多的参数,这 9 个块分别是:
1、Server 服务器运行的环境参数
2、Clients 客户端相关信息 – Redis 连接了多少客户端?
> redis-cli info clients
connected_clients:124 # 这个就是正在连接的客户端数量
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
接着就可以使用 client list 指令列出所有的客户端链接地址来确定源头。
3、Memory 服务器运行内存统计数据 – Redis 内存占用多大 ?
used_memory_human:827.46K # 内存分配器 (jemalloc) 从操作系统分配的内存总量
used_memory_rss_human:3.61M # 操作系统看到的内存占用 ,top 命令看到的内存
used_memory_peak_human:829.41K # Redis 内存消耗的峰值
used_memory_lua_human:37.00K # lua 脚本引擎占用的内存大小
4、Persistence 持久化信息 – 复制积压缓冲区多大?
这个信息在 Replication 块里,可以通过 info replication 看到。
> redis-cli info replication |grep backlog
repl_backlog_active:0
repl_backlog_size:1048576 # 这个就是积压缓冲区大小
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
> redis-cli info stats | grep sync
sync_full:0
sync_partial_ok:0
sync_partial_err:0 # 半同步失败次数 --通过查看 sync_partial_err 变量的次数来决定是否需要扩大积压缓冲区,它表示主从半同步复制失败的次数。
5、Stats 通用统计数据 --Redis 每秒执行多少次指令?
> redis-cli info stats |grep ops
instantaneous_ops_per_sec:789 -- 也就是所有客户端每秒会发送 789 条指令到服务器执行
6、Replication 主从复制相关信息
7、CPU CPU 使用情况
8、Cluster 集群信息
9、KeySpace 键值对统计数量信息