导语
类似于MySQL,Redis服务也有slow log,用来记录查询执行时间,
这里的执行时间仅仅指的是查询命令所消耗的时间,而不包括客户端响应等。
Redis的slow log是保存在内存中的,所以读写速度非常快,
不用担心因为开启slow log而对redis造成别的问题
配置
如果系统没有禁止`config`命令,则我们可以用config命令来操作,
而不用通过修改配置文件然后重启服务的方式
首先查看系统是否开启了slow log
## 如果没有禁止config则如下
config get slowlog*
## 如果禁止了config 则查看配置文件是否配置过
cat /usr/local/redis/conf/6379.conf |grep slowlog
config 配置
## 配置查询时间超过1毫秒的, 第一个参数单位是微秒
## 保存200条慢查记录
config set slowlog-log-lower-than 1000
config set slowlog-max-len 200
配置文件配置
该方式需要重启redis服务
## vim /usr/local/redis/conf/6379.conf
slowlog-log-lower-than 1000
slowlog-max-len 200
验证
如果没有禁止config命令,可以通过如下查看 slow log的配置
config get slow*
config get slowlog-log-slower-than
config get slowlog-max-len
具体的实例验证
# 查看当前总的slowlog个数
192.168.254.50:6379> slowlog len
(integer) 1
# 查看所有slowlog
192.168.254.50:6379> slowlog get
1) 1) (integer) 0
2) (integer) 1486526083
3) (integer) 150744
4) 1) "ZADD"
2) "FOLLOWER:2032177448"
3) "1.486526083072E12"
4) "2032442937"
# 查看指定个数的slowlog,这里只有1个,故只查询1条
192.168.254.50:6379> slowlog get 1
1) 1) (integer) 0
2) (integer) 1486526083
3) (integer) 150744
4) 1) "ZADD"
2) "FOLLOWER:2032177448"
3) "1.486526083072E12"
4) "2032442937"
# reset slow log
192.168.254.50:6379> SLOWLOG reset
OK
192.168.254.50:6379> slowlog len
(integer) 0
192.168.254.50:6379> slowlog get
(empty list or set)
192.168.254.50:6379>
参考
http://redisdoc.com/server/slowlog.html
http://roidba.blog.51cto.com/12318731/1877252
扩展
简书地址:redis slowlog配置说明
公众号: DailyJobOps