INFO 是什么
INFO 是 Redis 内置的状态报告:按段落输出若干行「字段: 值」的纯文本,既能人读也能被脚本逐行解析。默认输出会跳过开销较大的段,加上 all 才返回全部段落,其中包含命令级统计与百分位延迟。
段落对照
| 段落 | 内容 | 常见用途 |
|---|---|---|
| server | 版本、运行时长、运行模式与可执行路径 | 确认版本与实例角色 |
| clients | 连接数、阻塞客户端、输出缓冲 | 连接健康度 |
| memory | 内存水位、碎片率、淘汰策略 | 内存排障 |
| persistence | RDB 与 AOF 最近保存状态与耗时 | 后台任务是否失败 |
| stats | 吞吐、连接、命中、过期与淘汰计数 | 容量与缓存效果 |
| replication | 角色、复制偏移、链路状态 | 复制延迟定位 |
| cpu | 主进程与子进程 CPU 消耗 | 瓶颈归属判断 |
| commandstats | 每类命令的调用次数与耗时,仅 INFO all | 热点命令定位 |
| latencystats | 命令级百分位延迟,仅 INFO all | 尾部延迟观察 |
| keyspace | 各库键数量与带过期时间的键数 | 数据分布核对 |
| cluster | 集群状态与槽位分配 | 集群健康检查 |
典型使用场景
- 值班巡检:按固定段落采一轮,快速扫过版本、内存、持久化与复制状态
- 脚本采集:按段落名逐个取值,避免每次都拉全量输出
- 故障定位:先 stats,再 memory 与 persistence,最后 commandstats 缩小范围
- 变更验证:改参数或升级版本后对比同名段落,确认没有异常增量
- 跨版本兼容:用字段名取值并对缺失字段容错,而不是按固定行号解析
分段取值示例
分段取值示例
redis-cli INFO # 默认段落集合
redis-cli INFO server clients # 一次取多个段落
redis-cli INFO memory # 只取内存段
redis-cli INFO all | grep -E 'used_memory_human|maxmemory_policy'
redis-cli INFO all | grep 'latency_percentiles_usec' | head -5
redis-cli --raw INFO keyspace # 便于逐行处理的原始输出commandstats 与 latencystats 只在 INFO all 里出现;只跑 INFO 时取不到命令级数据,命令热点定位会缺一层证据。
字段值里可能包含逗号、空格与 human 单位(如 1.20M),不要用简单分隔符切分;按首个冒号拆键值更稳妥,human 字段另取不带 human 后缀的原始值参与计算。
INFO all 需要拼接大量字符串,命令类型越多、实例规模越大开销越明显;高频采集时按需取段,不要每次全量。