redis slowlog

本文介绍了Redis慢查询日志(slowlog)的功能及其配置方式。通过调整slowlog-log-slower-than和slowlog-max-len参数,可以记录执行时间过长的命令。slowlogget命令可用于查看日志,而slowlogreset则用来清空日志。
slowlog
此命令用于读取和重置redis慢请求日志

[size=large][color=black][b]redis slow log概述[/b][/color][/size]

redis的slow log记录了那些执行时间超过规定时长的请求。执行时间不包括I/O操作(比如与客户端进行网络通信等),只是命令的实际执行时间(期间线程会被阻塞,无法服务于其它请求)。
有两个参数用于配置slow log:

[size=large][color=black][b]slowlog-log-slower-than:[/b][/color][/size]
设定执行时间,单位是毫秒,执行时长超过该时间的命令将会被记入log。-1表示不记录slow log; 0强制记录所有命令。

[size=large][color=black][b]slowlog-max-len:[/b][/color][/size]
slow log的长度。最小值为0。如果日志队列已超出最大长度,则最早的记录会被从队列中清除。
可以通过编辑redis.conf文件配置以上两个参数。对运行中的redis, 可以通过config get, config set命令动态改变上述两个参数

[size=large][color=black][b]读取slow log[/b][/color][/size]

slow log是记录在内存中的,所以即使你记录所有的命令(将slowlog-log-slower-than设为0),对性能的影响也很小。
[size=large][color=black][b]slowlog get[/b][/color][/size]: 列出所有slow log
[size=large][color=black][b]slowlog get N[/b][/color][/size]:列出最近N条slow log

[size=large][color=black][b]输出格式[/b][/color][/size]
redis 127.0.0.1:6379> slowlog get 2
1) 1) (integer) 14
2) (integer) 1309448221
3) (integer) 15
4) 1) "ping"
2) 1) (integer) 13
2) (integer) 1309448128
3) (integer) 30
4) 1) "slowlog"
2) "get"
3) "100"


每个条目由4个字段构成:
1)用于表示该条slow log的唯一id
2)以unix时间戳表示的日志记录时间
3)命令执行时间,单位:微秒
4) 执行的具体命令
只有当reids重启后,id编号才会被重置。

[size=large][color=black][b]获取当前slowlog长度[/b][/color][/size]

slowlog len

[size=large][color=black][b]重置slowlog[/b][/color][/size]

可以使用slowlog reset重置slow log。日志一旦被删除,将无法恢复。

参考:http://blog.youkuaiyun.com/qmhball/article/details/46967849
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值