能,但只反映网络链路与Redis单线程响应能力的叠加效果;因Redis单线程顺序执行,ping延迟升高即预示业务卡顿,却无法区分网络、Redis自身或客户端问题。

redis-cli --latency 能不能反映真实业务延迟?
能,但只反映网络链路 + Redis 单线程响应能力的叠加效果。因为 Redis 是单线程顺序执行命令的,ping 命令虽轻量,但若某条慢命令(如 HGETALL 大 Hash)正在执行,后续所有请求(包括 ping)都会排队等待——所以 --latency 测出的延迟升高,往往就是真实业务卡顿的前置信号。
但它不区分是网络问题、Redis 自身阻塞,还是客户端发包慢。比如你在远端机器跑 redis-cli --latency -h 10.0.1.5 -p 6379,测出 avg:12.4 ms,而本地跑只有 avg:0.18 ms,那 12 ms 差值基本就是网络 I/O 开销,和 Redis 本身无关。
怎么用 --latency-history 持续记录并观察趋势?
--latency-history 不是“后台守护进程”,而是按固定间隔采样并打印一行统计,适合人工盯屏或配合日志采集。
- 默认每 15 秒输出一次:运行
redis-cli --latency-history -h x.x.x.x -p 6379 - 自定义间隔用
-i参数,例如每 5 秒采样:redis-cli --latency-history -h x.x.x.x -p 6379 -i 5 - 输出格式为
min:max:avg (samples) @ timestamp,例如:min:0,max:23,avg:1.82(124) @ 17:22:41 - 它不会自动退出,需手动
Ctrl+C;想存日志可重定向:redis-cli --latency-history -h ... >> latency.log 2>&1
注意:--latency-history 和 --latency-dist 不能共用,后者是彩色直方图模式,只适合终端实时看分布,不适合长期记录。
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
--intrinsic-latency 是干啥的?什么时候必须用?
--intrinsic-latency 测的是 Redis 进程所在机器自身的调度延迟(CPU 抢占、中断、NUMA 等),和网络完全无关,也不连接 Redis Server。它本质是让 redis-cli 在本机空转做高频率时间戳采样,用来建立 Redis 的“基线性能”。
- 必须在 Redis Server 所在机器上运行,例如:
./redis-cli --intrinsic-latency 60(测 60 秒) - 结果里关键看
Max latency so far,单位是微秒(μs);生产环境超过 100 μs 就值得警惕,超过 1000 μs(1 ms)大概率有 CPU 争抢或系统负载问题 - 如果
--latency显示延迟飙升,但--intrinsic-latency依然稳定在 20 μs,那问题一定出在网络或客户端;反之,如果 intrinsic 也飙到几毫秒,说明宿主机已不可信——别急着查 Redis 配置,先看top、vmstat 1、dmesg | tail
容易被忽略的三个实操细节
很多人跑完 --latency 就以为万事大吉,其实以下三点不处理,监控就等于没做:
-
--latency默认只连一次,然后持续发PING;但如果 Redis 启用了 requirepass,它不会自动鉴权,会一直报NOAUTH错误——必须加-a <password>或提前CONFIG SET requirepass ""(测试环境) - Linux 上若启用了
transparent_hugepage,会导致--intrinsic-latency测出异常高的毛刺(动辄几毫秒),这是内核已知问题,应禁用:echo never > /sys/kernel/mm/transparent_hugepage/enabled -
--latency-history输出的时间戳是本地 shell 时间,不是 Redis 服务器时间;跨时区或 NTP 不同步时,日志里的 @ timestamp 可能和监控系统对不上,建议统一用 UTC 并校准 NTP
真正有效的延迟监控,从来不是靠一个命令撑全场。把 --latency 当探针,--intrinsic-latency 当基线标尺,再配上 SLOWLOG GET 和 INFO stats | grep blocked,才能定位到到底是网络抖动、大 key 阻塞,还是宿主机被其他进程拖垮了。

















