首页 > 编程知识 正文

redis日志详解,linux系统查询日志

时间:2023-05-06 01:36:33 阅读:40871 作者:516

今天,中间件接口响应时间长,经过粗略的故障诊断,发现Redis访问速度慢,Redis的cpu确实达到了98%左右。 现在有必要确定问题。 首先打开Redis的慢速日志。

什么是慢速日志

Slow log是Redis用于记录查询执行时间的日志系统。

执行查询的时间不包括客户端响应、发送回复等I/o操作,而只是执行查询命令所需的时间。

此外,由于slow log存储在内存中,读写速度非常快,因此打开slow log不会影响Redis的速度,可以放心使用。

Slow log的行为由两个配置参数“CONFIGuration parameter”指定,可以重写redis.conf文件,也可以使用CONFIG和CONFIG命令动态更改。

第一个选项是慢速日志缓冲区,用于确定记录运行时间超过多少微秒(microsecond,1秒=1,000,000微秒)的查询。

例如,运行以下命令时,slow log将记录所有查询时间都在100微秒以上的查询:

configsetslowlog-log-slower-than 100

以下命令记录查询时间超过1000微秒的所有查询。

configsetslowlog-log-slower-than 1000

另一个选项是slow log-max-len,它确定slow log可以保存的最大日志数。 slow log本身是LIFO队列,如果队列大小超过slowlog-max-len,则会删除最旧的日志并将最新的日志添加到slow log中。

以下命令使slow log最多存储1000个日志。

配置获取慢速日志-最大- len

使用CONFIG命令可以查询两个选项的当前值。

看慢日志

要显示slow log,请使用打印所有slow log的SLOWLOG GET命令或SLOWLOG GET number命令。 最大长度取决于“slowlog-max-len”选项的值,SLOWLOG number仅打印指定数量的日志。

最新日志将首先打印:

日志的唯一id仅在Redis服务器重新启动时重置,以避免日志重复处理。 例如,您可能希望在每次找到新的慢查询时通过电子邮件通知您。

显示当前日志的数量

命令SLOWLOG允许您显示当前日志的数量。

请注意此值和slower-max-len之间的差异。 一个是当前日志的数量,另一个是可以记录的最大日志数量。

redis SLOWLOG LEN

(集成器) 14

清除日志

可以使用SLOWLOG RESET命令清空slow log。

redis SLOWLOG LEN

(集成器) 14

redis slow日志重置

redis SLOWLOG LEN

(集成器) 0

在抛出日志中,可以看到程序使用了keys message_*命令,从而增加了中间件的响应时间。 修改代码,解决问题。

您可能也喜欢下一篇关于Redis的文章。 请参考:

Redis详细介绍:请单击此处

Redis下载地址:请单击此处

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。