获取慢查询日志
slowlog get [n]
- 之前设置是10毫秒的阈值,所以没有指令的信息,现在将redis的阈值设置为0.没有进行对redis的操作所以没有指令信息哈哈哈
- 查询结果的详细分析
- 慢查询日志的组成部分包括:日志的标识id、发生的时间戳、命令耗时(微妙)、执行命令与参数、客户端IP和端口、客户端名称。
获取慢查询日志当前列表的长度
slowlog len
慢查询日志重置
slowlog reset
使用慢查询的注意事项
- 由于记录慢查询时Redis会对长命令做截断的操作,并不会占用大量的内存。增大慢查询列表可以减缓慢查询记录被剔除的可能。线上生产建议1000以上。
- 关于超时阈值的判断,默认时10毫秒。需要根据Redis的并发量调整该值。
- 由于Redis采用单线程响应命令,对应的高流量场景,如果命令执行事件在1毫秒以上。Redis最多可以支撑的OPS(“Oracle Parallel Server”的缩写来使用,中文表示:“并行服务器”)不到1000,对于高OPS的场景Redis设置建议为1毫秒或者更低比如100微妙。
- 慢查询只是针对命令执行时间,不包括命令排队和网络传输时间。因此客户端执行时间会大于命令实际执行时间。因为命令执行的排队机制,慢查询会导致其他命令级联阻塞,因此当客户端出现请求超时,需要检查该时间点是否有对应的慢查询。为了分析是否是慢查询导致的命令级联阻塞。
- 慢查询日志队列是一个FIFO队列,慢查询比较多的情况下,可能会丢失部分队列,为了避免可以采用定期执行slowlog get命令将慢查询日志持久化到其他存储中。