如何记录和查询Redis慢执行日志

Redis是单线程运行的,一个慢执行,会让后续的大量执行延时,吞吐量也会极大的降低。记录、查询、监控Redis慢执行意义重大。Redis的slowlog只记录在内存中,效率很高,不用过于担心影响性能。题外话,Redis确实是一个比较完备的工具,不是简单的内存数据库那么简单。

配置slowlog

`config get slowlog-log-slower-than`  
查询log的时间阀值(微秒,一毫秒等于1000微秒),大于该数字的语句才会记录。负数表示不记录,0记录所有的。

`config set slowlog-log-slower-than 30000`  
设置log的时间阀值为30毫秒

`config get slowlog-max-len`  
查询log的最大条数。大于该数字,旧的会被丢弃。

`config set slowlog-max-len 300`  
设置log的最大条数为300。

查询log

`slowlog len`  

有多少条log?

`slowlog get`  

显示所有log

`slowlog get 10`  

显示最近的10条log

log的格式说明

10.19.10.44:7395> slowlog get 1
1) 1) (integer) 55265 // log id
2) (integer) 1506669325 // unix时间戳
3) (integer) 19283 // 执行时间,微秒
4) 1) “SMEMBERS” // redis命令以及参数
2) “ip_set_b7c6e785bb264a9d87548dfe40e5de5f_2017-09-29”

参考链接

猜你喜欢

转载自blog.csdn.net/kimylrong/article/details/78134225