Redis实时请求怎么查看啊,具体请求信息又该咋弄才好呢?
- 问答
- 2026-01-18 04:00:59
- 7
想知道Redis现在正在干什么,有哪些请求正在执行,这其实就是在问如何监控Redis的实时活动,最简单直接的办法,就是使用Redis自带的命令行工具,就像我们打开电脑的任务管理器一样。
第一招:使用Redis自带的CLI命令
最常用的命令是 INFO 命令,你连接到Redis服务器后,输入 INFO,它会返回一大堆信息,内容非常多,但如果你只关心客户端的连接和正在执行的命令,可以更精确一点,输入 INFO clients,它会告诉你当前有多少个客户端连接着;输入 INFO stats,里面会包含一些统计信息,比如总共处理了多少次命令,但这还不是真正的“实时”。
想要看真正的实时动态,你得用 MONITOR 命令,这个命令非常强大,你只要在Redis的命令行界面输入 MONITOR,然后回车,它就会变成一个实时日志输出窗口,任何客户端对Redis发起的任何命令,都会立刻在这个窗口里显示出来,包括命令本身、发起命令的客户端端口号和时间戳,比如你会看到类似这样的行:123456 [0 127.0.0.1:54567] "GET" "user:123:name",这行信息的意思就是,在某个时间点,来自IP127.0.0.1端口54567的客户端执行了一个GET命令,要获取键user:123:name的值。

根据Redis官方文档的提醒,MONITOR命令虽然方便,代价却很高,因为它会严重影响Redis的性能,Redis服务器需要把收到的每一个命令都复制一份发给所有开启了MONITOR的客户端,在高流量的生产环境下,这可能会让Redis的吞吐量大幅下降,这个命令一般只建议在调试或者开发环境短暂使用,绝对不能长时间在生产环境开着。
第二招:使用redis-cli的统计模式
如果你觉得MONITOR的信息太杂太乱,而且不敢在生产环境用,那还有一个更轻量级的选择,在使用redis-cli连接服务器时,可以加上一个参数 --stat,命令就像这样:redis-cli -h your_redis_host -p your_redis_port --stat。
这个模式不会打印出每条具体的命令,而是会以一个固定的频率(默认一秒一次)刷新屏幕,显示一些关键的实时统计指标,它会告诉你这一秒钟内处理了多少个命令、客户端连接数的变化、以及内存的使用情况等等,它用一种汇总的方式让你快速了解Redis的负载和健康状态,对性能的影响极小,非常适合在生产环境进行短时间的观察。

第三招:查看慢查询日志
你关心的可能不是所有请求,而是那些执行得很慢的、可能有问题请求,Redis提供了一个叫“慢查询日志”的功能,它会自动记录那些执行时间超过你设定阈值的命令。
这个功能默认是关闭的,你需要通过配置两个参数来开启它:slowlog-log-slower-than 和 slowlog-max-len,第一个参数slowlog-log-slower-than的单位是微秒,10000微秒就是10毫秒,意思是,执行时间超过10毫秒的命令就会被记录下来,你可以根据你系统的性能要求调整这个值,比如设置为0会记录所有命令,设置为负数则禁用慢日志,第二个参数slowlog-max-len是指慢查询日志列表的最大长度,因为日志是存在内存里的,不能无限增长,达到这个长度后,旧的记录就会被删除。
设置好之后,你就可以用 SLOWLOG GET 命令来查看记录的慢查询了,这个命令会返回一个列表,每条慢查询记录都包含了非常详细的信息:一个是这条命令唯一的ID,一个是命令发生的时间戳,一个是命令执行耗费的时间(单位也是微秒),还有就是命令本身以及其参数,通过分析这些慢查询,你就能准确地找到是哪些操作拖慢了Redis,从而有针对性地进行优化,比如是不是某个键太大了,或者某个命令用得不对。

第四招:借助外部图形化监控工具
如果你觉得命令行还是不够直观,或者需要长期的监控和告警,那么最好的选择就是使用外部的图形化监控工具,这些工具通常需要你在Redis服务器上部署一个数据采集 agent,然后由这个agent定期去收集Redis的INFO命令输出、慢查询日志等指标,再发送到中央监控服务器进行存储和展示。
这方面最著名的开源组合是 Prometheus + Grafana,Prometheus负责抓取和存储数据,Grafana则负责用非常漂亮的图表来展示这些数据,你可以看到QPS(每秒请求数)、内存使用量、连接数、命令耗时分布等指标随时间变化的曲线图,一目了然,很多云服务商提供的Redis服务也自带了非常完善的监控面板。
还有一些专门的APM工具,也集成了对Redis的监控,可以追踪到具体哪个应用、哪个业务逻辑发起的Redis请求,并把数据库请求和业务代码关联起来,这对于排查复杂问题尤其有帮助。
查看Redis实时请求,如果只是临时看一眼,可以用MONITOR(注意性能风险)或redis-cli --stat,如果想找出性能瓶颈,一定要配置和使用SLOWLOG慢查询日志,如果要做长期、稳定的监控和告警,那就搭建Prometheus+Grafana这样的专业监控系统,根据你的不同需求,选择最适合的方法。
本文由革姣丽于2026-01-18发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/82814.html
