Redis数据库篇 -- 慢查询

实验环境

操作系统: ubuntu-16.04-x64
redis版本: 4.0.9

慢查询

Redis 的慢查询日志功能用于记录执行时间超过给定时长的命令请求, 用户可以通过这个功能产生的日志来监视和优化查询速度。

配置参数

与慢查询相关的配置参数有两项:

  • slowlog-log-slower-than
    慢查询的预设阈值,单位为微妙,默认为10000即10ms。当一条命令的执行时间超过了slowlog-log-slower-than的值后它将被记录到慢查询日志中。
  • slowlog-max-len
    慢查询日志的最大条数,默认为128。redis慢查询日志存储在内存的队列中,按照先进先出的原则,如果队列满了,则老的日志会被新的日志覆盖。

配置方式:

  • 修改配置文件redis.conf。
  • 动态配置,使用config set命令。

相关命令

  1. slowlog get [n]: 获取慢查询队列
  2. slowlog len: 获取慢查询队列长度
  3. slowlog reset: 清空慢查询队列

例:
设置慢查询配置参数:

127.0.0.1:6379> CONFIG GET slowlog-log-slower-than   
1) "slowlog-log-slower-than"                         
2) "10000"                                           
127.0.0.1:6379> CONFIG SET slowlog-log-slower-than 10 
OK                                                   
127.0.0.1:6379> CONFIG GET slowlog-max-len           
1) "slowlog-max-len"                                 
2) "128"                                             
127.0.0.1:6379> CONFIG SET slowlog-max-len 1000      

在redis中创建5个string类型的key

127.0.0.1:6379> mset key1 1 key2 2 key3 3 key4 4 key5 5
5
OK

查看所有的key

127.0.0.1:6379> KEYS *
1) "key1"
2) "key2"
3) "key3"
4) "key4"
5) "key5"

查看慢查询队列的长度,结果显示队列长度为1。看来已经有命令进入慢查询队列中了。

127.0.0.1:6379> SLOWLOG len
(integer) 1

慢查询日志由以下四个属性组成:标识ID,发生时间戳,命令耗时,执行命令和参数。下面我们通过命令来查看慢查询日志的内容。

127.0.0.1:6379> SLOWLOG get
1) 1) (integer) 16               # 日志的唯一标识符(uid)
   2) (integer) 1530904865       # 命令执行时的 UNIX 时间戳
   3) (integer) 12               # 命令执行的时长,以微秒计算
   4) 1) "KEYS"                  # 命令以及命令参数
      2) "*"
   5) "127.0.0.1:54732"
   6) ""

总结

本文总结了redis慢查询的配置与命令,并结合实例演示了慢查询的使用。

猜你喜欢

转载自blog.csdn.net/cl2010abc/article/details/80948133
今日推荐