介绍
Redis 的慢查询日志功能用于记录执行时间超过给定时长的执行命令,用户可以通过这个功能产生的日志来见识和优化查询速度。
服务器有两个配置选项和慢查询日志有关:
slowlog-log-slower-than
该选项指定执行时间超过多少微秒
的命令请求会被记录到日志上。
slowlog-max-len
该选项指定服务器最多保存多少条慢查询日志。
服务器优先使用先进先出的方式保存指定条数的慢查询日志,当服务器存储的慢查询日志数量等于该选项的值时,服务器在添加一条新的慢查询日志前,会先将最旧的一条慢查询日志删除。
示例
一、
先使用CONFIG SET
命令将第一个配置项slowlog-log-slower-than的值设置为0,为了方便测试,这样,Redis服务的任何命令都会是被记录到慢查询中;然后将slowlog-max-len的值设置为6,服务器最多保存6条慢查询日志
二、
接着我们随便执行一些redis命令
三、
使用SLOWLOG GET
命令查看服务器保存的慢查询日志
参数说明,拿最后一条命令举例,红框中的1,2,3,4分别代表什么(每条命令一样):
- 1):日志的唯一标识符UID
- 2):命令执行时的UNIX时间戳
- 3):命令执行的时长,以微秒计算
- 4):命令以及命令参数
另外,我们可以记得示例的第一步中,我们吧慢查询日志记录条数设置为6,正好执行了6条命令,上面的slowlog get
获取到的也是6条,因为记录遵循先进先出的原则,我们,再新增一条命令执行看下结果:
看下慢查询日志记录,我们会发现,因为我们增加执行了两条命令,不要忘记获取慢查询日志的哦
//1:
set test4 millet109
//2.
slowlog get
最多记录6条,所以将最初的两条删除,可以查看上方那张图对比,遵循先进先出原则