Redis采用slowlog来记录查询执行时间的日志系统。注意,这个查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。
slowlog 保存在内存里面,读写速度非常快,因此我们可以放心地使用它,不必担心因为开启 slowlog 而损害 Redis 的速度。
slowlog 有两个重要的配置,我们先通过 CONFIG GET slowlog-* 命令来查看现有的配置。
slowlog-log-slower-than表示慢查询的阈值,以微秒为单位。如果查询命令的执行时间超过设置的限制阈值,该命令将被记录在慢查询日志中。记录所有命令,当slowlog-log-slower-than=0。当slowlog-log-slower-than的值小于等于0时,将不会记录任何命令。slowlog-log-slower-than 的默认值为 10000 (10毫秒,1秒 = 1,000毫秒 = 1,000,000微秒)。
slowlog-max-len 代表慢查询日志最大条数。这是一个先进先出队列的存储结构,当慢查询日志条目数量达到上限时,最早记录的日志条目将被销毁。slowlog-max-len 的默认值为 128,保存在内存内,所以重启 redis 会清空慢查询日志。
配置 slowlog-log-slower-than 和 slowlog-max-len 的命令非常简单,如下:
使用 SLOWLOG LEN 命令,查询当前的慢查询日志记录数。
当我们只需要查询前几个慢查询记录时,可以使用 SLOWLOG GET [n] 命令。
SLOWLOG GET [n] 若不加 n ,则获取全部慢查询记录。
清空慢查询日志使用 SLOWLOG RESET。请注意,不要将 slowlog-log-slower-than 设置得过大,因为过大的设置可能会导致没有记录被记录下来。
以上是Redis中slowlog有什么用的详细内容。更多信息请关注PHP中文网其他相关文章!