Redis中慢日志slowlog的配置及使用

Redis中慢日志slowlog的配置及使用

redis运维中,对于数据的查询的监控十分重要。

什么是slowlog?

Slow log 是 Redis 用来记录查询执行时间的日志系统。
查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。

需要注意的是,slow log 保存在内存里面,读写速度非常快,不损害 Redis 的速度,但是会占用一定的宝贵的内存开销。

配置参数说明

  • slowlog-log-slower-than:
    • 决定要对执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录
  • slowlog-max-len:
    • 它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len 时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log ,以此类推。

设置slowlog

设置slowlog有两种方式:

  • 方式一:通过配置redis.conf文件进行配置
# 执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录。
slowlog-log-lower-than 1000

#最多能保存多少条日志
slowlog-max-len 200
  • 方式二:通过CONFIG命令进行配置
# 配置查询时间超过1毫秒的, 第一个参数单位是微秒
> config set slowlog-log-lower-than 1000

#  保存200条慢查记录
> config set slowlog-max-len 200

查看 slow log

  • 查看日志
    可以使用 SLOWLOG GET 或者 SLOWLOG GET number 命令,前者打印所有 slow log ,最大长度取决于 slowlog-max-len 选项的值,而 SLOWLOG GET number 则只打印指定数量的日志。
  • 查看当前日志数量: 使用SHOW LEN命令查看日志数量。
redis> SLOWLOG LEN
(integer) 14
  • 清空日志:SLOWLOG RESET
redis> SLOWLOG LEN
(integer) 14

redis> SLOWLOG RESET
OK

redis> SLOWLOG LEN
(integer) 0

tips:
可用版本:>= 2.2.12
时间复杂度:O(1)
返回值:取决于不同命令,返回不同的值。

猜你喜欢

转载自blog.csdn.net/m0_37113539/article/details/82385765