关于 Redis慢日志
2020/04/21 13:30:46 来源:cnblogs.com/52fhy 作者:飞鸿影

简介

慢日志(Slow log) 是 Redis 用来记录命令执行时间的日志系统。例如线上Redis突然出现堵塞,使用该命令可以查询Redis服务器耗时的命令列表,快速定位问题。

由于慢日志是存储于内存的,读写速度非常快,不用担心因为使用慢日志而造成性能问题。

可用版本: >= 2.2.12
时间复杂度: O(1)

如何配置

2种配置方法。第一种是修改redis.conf配置文件,第二种则是使用CONFIG SET动态修改。

需要配置的参数:

示例:

CONFIG SET slowlog-log-slower-than 10000
CONFIG SET slowlog-max-len 128

查询是否生效,可以使用CONFIG GET命令:

127.0.0.1:6379> CONFIG GET slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "10000"

127.0.0.1:6379> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "128"

查询慢日志

查询很简单,使用SLOWLOG GET命令:

127.0.0.1:6379> SLOWLOG GET 2
1) 1) (integer) 207
   2) (integer) 1582875104
   3) (integer) 98977
   4) 1) "SPOP"
      2) "wt_pre_room_wxids"
2) 1) (integer) 206
   2) (integer) 1582875103
   3) (integer) 501649
   4) 1) "SPOP"
      2) "wt_bind_user_wxids"

该命令如果不给参数,则打印出所有慢查询命令。

现在按结果集顺序讲解一下输出的结果含义:

如果仅需要知道当前慢查询的数量,则使用命令SLOWLOG LEN即可:

127.0.0.1:6379> SLOWLOG LEN
(integer) 128

使用命令 SLOWLOG RESET 可以清空 慢日志 :

127.0.0.1:6379> SLOWLOG RESET
OK

提示:慢查询较多的情况下,可能会丢失部分慢查询命令,可以定期执行 SLOWLOG GET命令将慢查询日志持久化到其他存储(例如ES)中。然后制作可视化界面查询。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2020-04/162979.htm


7

本栏最新