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”
参考链接
https://blog.csdn.net/kimylrong/article/details/78134225