温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Redis慢查询日志怎么使用

发布时间:2022-02-18 17:20:52 阅读:178 作者:iii 栏目:开发技术
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

今天小编给大家分享一下Redis慢查询日志怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

慢查询日志

什么是SLOW LOG?

Slow log是Redis用来记录查询执行时间超过给定时长的命令请求的日志系统。查询执行时间指的是不包括像客户端响应(talking)、发送回复等IO操作,而单单是执行一个查询命令所耗费的时间。另外,slow log保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启slow log而损害Redis的速度。

Redis慢查询日志怎么使用
设置和查看SLOWLOG

服务器配置有两个和慢查询日志相关的选项:

slowlog-log-slower-than:选项指定执行时间超过多少微秒(1秒等于1,000,000微秒)的命令请求会被记录到日志上。举个例子, 如果这个选项的值为100,那么执行时间超过100微秒的命令就会被记录到慢查询日志; 如果这个选项的值为500 , 那么执行时间超过500微秒的命令就会被记录到慢查询日志; 诸如此类。

slowlog-max-len:选项指定服务器最多保存多少条慢查询日志。服务器使用先进先出的方式保存多条慢查询日志: 当服务器储存的慢查询日志数量等于slowlog-max-len选项的值时,服务器在添加一条新的慢查询日志之前,会先将最旧的一条慢查询日志删除。举个例子, 如果服务器slowlog-max-len的值为100,并且假设服务器已经储存了100条慢查询日志, 那么如果服务器打算添加一条新日志的话,它就必须先删除目前保存的最旧的那条日志, 然后再添加新日志。

让我们来看一个慢查询日志功能的例子,首先用CONFIG_SET命令将slowlog-log-slower-than选项的值设为0微秒, 这样Redis服务器执行的任何命令都会被记录到慢查询日志中, 接着将slowlog-max-len选项的值设为5,让服务器最多只保存5条慢查询日志:

redis> CONFIG SET slowlog-log-slower-than 0
OK

redis> CONFIG SET slowlog-max-len 5
OK

接着, 我们用客户端发送几条命令请求:

redis> SET msg "hello world"OK

redis> SET number 10086
OK

redis> SET database "Redis"OK

然后使用SLOWLOG GET命令查看服务器所保存的慢查询日志:

redis> SLOWLOG GET
11) (integer4               #日志的唯一标识符(uid);  2) (integer1378781447      #命令执行时的UNIX时间戳;  3) (integer13              #命令执行的时长,以微秒计算;  41) "SET"                  #命令以及命令参数;     2) "database"     3) "Redis"21) (integer3
  2) (integer1378781439
  3) (integer10
  41) "SET"     2) "number"     3) "10086"31) (integer2
  2) (integer1378781436
  3) (integer18
  41) "SET"     2) "msg"     3) "hello world"41) (integer1
  2) (integer1378781425
  3) (integer11
  41) "CONFIG"  2) "SET"  3) "slowlog-max-len"  4) "5"51) (integer0
  2) (integer1378781415
  3) (integer53
  41) "CONFIG"     2) "SET"     3) "slowlog-log-slower-than"     4) "0"

如果这时再执行一条SLOWLOG GET 1命令,那么我们将看到, 上一次执行的SLOWLOG GET命令已经被记录到了慢查询日志中, 而最旧的、编号为0的慢查询日志已经被删除, 服务器的慢查询日志数量仍然为5条:

redis> SLOWLOG GET 1
11) (integer5
  2) (integer1378781521
  3) (integer61
  41) "SLOWLOG"     2) "GET"

日志的唯一id只有在Redis服务器重启的时候才会重置,这样可以避免对日志的重复处理(比如你可能会想在每次发现新的慢查询时发邮件通知你)。

使用命令SLOWLOG LEN可以查看当前日志的数量。

请注意这个值和 slower-max-len的区别,它们一个是当前日志的数量,一个是允许记录的最大日志的数量。

redis> SLOWLOG LEN
(integer) 5
清空日志

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

redis> SLOWLOG RESET
OK

以上就是“Redis慢查询日志怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×