问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

redis慢日志什么意思

发布网友 发布时间:2022-04-28 21:10

我来回答

2个回答

懂视网 时间:2022-04-29 19:43

推荐:《redis教程》

什么是慢查询?

慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我们了解一下Redis命令执行的整个过程:

  1. 发送命令
  2. 命令排队
  3. 命令执行
  4. 返回结果

在慢查询的定义中,统计比较慢的时间段指的是命令执行这个步骤。没有慢查询,并不表示客户端没有超时问题,有可能网络传输有延迟,也有可能排队的命令比较多。

因为Redis中命令执行的排队机制,慢查询会导致其他命令的级联阻塞,所以当客户端出现请求超时的时候,需要检查该时间点是否有慢查询,从而分析出由于慢查询导致的命令级联阻塞。

什么是慢查询日志?

慢查询日志是Redis服务端在命令执行前后计算每条命令的执行时长,当超过某个阈值是记录下来的日志。日志中记录了慢查询发生的时间,还有执行时长、具体什么命令等信息,它可以用来帮助开发和运维人员定位系统中存在的慢查询。

如何获取慢查询日志?

可以使用slowlog get命令获取慢查询日志,在slowlog get后面还可以加一个数字,用于指定获取慢查询日志的条数,比如,获取3条慢查询日志:

> slowlog get 3
1) 1) (integer) 6107
 2) (integer) 1616398930
 3) (integer) 3109
 4) 1) "config"
 2) "rewrite"
2) 1) (integer) 6106
 2) (integer) 1613701788
 3) (integer) 36004
 4) 1) "flushall"
3) 1) (integer) 6105
 2) (integer) 1608722338
 3) (integer) 20449
 4) 1) "scan"
 2) "0"
 3) "MATCH"
 4) "*comment*"
 5) "COUNT"
 6) "10000"

从上面的例子中,可以看出每一条慢查询日志都有4个属性组成:

  1. 唯一标识ID
  2. 命令执行的时间戳
  3. 命令执行时长
  4. 执行的命名和参数

如何获取慢查询日志的长度?

可以使用slowlog len命令获取慢查询日志的长度,比如:

> slowlog len
(integer) 121

在上例中,当前Redis中有121条慢查询日志。

如何清理慢查询日志?

可以使用slowlog reset命令清理慢查询日志,比如:

> slowlog len
(integer) 121
> slowlog reset
OK
> slowlog len
(integer) 0

怎么配置慢查询的参数?

正如上面提到的,慢查询需要如下两个配置:

  1. 命令执行时长的指定阈值。
  2. 存放慢查询日志的条数。

Redis对应提供了两个参数:slowlog-log-slower-than和slowlog-max-len,接下来我们详细介绍一下这两个参数。

slowlog-log-slower-than

slowlog-log-slower-than的作用是指定命令执行时长的阈值,执行命令的时长超过这个阈值时就会被记录下来。它的单位是微秒(1秒 = 1000毫秒 = 1000000微秒),默认是10000微秒。如果把slowlog-log-slower-than设置为0,将会记录所有命令到日志中。如果把slowlog-log-slower-than设置小于0,将会不记录任何命令到日志中。

在实际的生产环境中,需要根据Redis并发量来调整该配置。因为Redis采用单线程响应命令,如果命令执行时间在1000微秒以上,那么Redis最多可支撑OPS不到1000,所以对于高并发场景的Redis建议设置为1000微秒。

slowlog-max-len

slowlog-max-len的作用是指定慢查询日志最多存储的条数。实际上,Redis使用了一个列表存放慢查询日志,slowlog-max-len就是这个列表的最大长度。当一个新的命令满足满足慢查询条件时,被插入这个列表中。当慢查询日志列表已经达到最大长度时,最早插入的那条命令将被从列表中移出。比如,slowlog-max-len被设置为10,当有第11条命令插入时,在列表中的第1条命令先被移出,然后再把第11条命令放入列表。

记录慢查询是Redis会对长命令进行截断,不会大量占用大量内存。在实际的生产环境中,为了减缓慢查询被移出的可能和更方便地定位慢查询,建议将慢查询日志的长度调整的大一些。比如可以设置为1000以上。

如何进行配置

在Redis中有两个修改配置的方法:

  1. 修改Redis配置文件。比如,把slowlog-log-slower-than设置为1000,slowlog-max-len设置为1200:
slowlog-log-slower-than 1000
slowlog-max-len 1200
  1. 使用config set命令动态修改。比如,还是把slowlog-log-slower-than设置为1000,slowlog-max-len设置为1200:
> config set slowlog-log-slower-than 1000
OK
> config set slowlog-max-len 1200
OK
> config rewrite
OK

如果要Redis把配置持久化到本地配置文件,需要执行config rewrite命令。

总结

慢查询指的是命令执行时长比较长的查询。通过slowlog get命令获取慢查询日志;通过slowlog len命令获取慢查询日志的长度;通过slowlog reset命令清理慢查询日志。通过slowlog-log-slower-than配置命令执行时长的阈值;通过slowlog-max-len配置慢查询日志最多存储的条数

热心网友 时间:2022-04-29 16:51

redis的slowlog是redis用于记录记录慢查询执行时间的日志系统。由于slowlog只保存在内存中,因此slowlog的效率很高,完全不用担心会影响到redis的性能。Slowlog是Redis从2.2.12版本引入的一条命令。
在redis.conf中有关于slowlog的设置:

slowlog-log-slower-than 10000slowlog-max-len 128

其中slowlog-log-slower-than表示slowlog的划定界限,只有query执行时间大于slowlog-log-slower-than的才会定义成慢查询,才会被slowlog进行记录。slowlog-log-slower-than设置的单位是微妙,默认是10000微妙,也就是10ms
slowlog-max-len表示慢查询最大的条数,当slowlog超过设定的最大值后,会将最早的slowlog删除,是个FIFO队列
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我在石家庄我的显卡坏了过了保修期我想问一下哪里可以修? 梦见蹲了半天的茅房 2016寒假小结作文怎么写 荣耀9,为什么电量现在越来越不耐用,之前更 哪些是易燃易爆场所 加油站有哪些消防安全隐患 说美国和苏联可以毁灭地球若干次的说法是怎么算出来的? 上证指数的年线怎么看? 早教中心需要什么证件 开办早教中心需要哪些许可证 ps cs6中怎么把背景改为图层 移动电视机顶盒可以手机投屏吗 移动送的盒子怎么投屏 一级建造师PK造价工程师,哪个含金量更高 问一下大家,一建含金量高么,京华网校可以考虑么? 一级建造师有多少含金量? 一级建造师价值大不大? 很多人报考一建,一建含金量有多高 碳烧生蚝怎么烤的? 一级建造师各专业含金量怎么样? 目前一级建造师证到底有没有含金量? 如何碳烤生蚝 一建含金量大吗,值得付出吗 一级建造师证书的含金量高不高? 炭烧生蚝中,蚝肉包裹的绿色东西是不是粪便啊? 美的尚弧空调我打开ECO模式怎么不够冷不要ECO模式就够冷是什么原因 一级建造师它的含金量高么? 【非农行情 怎么做单】 外汇交易新手问题 高盛时隔六个月改口,停止建议做空美元,美元未来的趋势如何? 怎样设置redis cluster的日志输出 redis客户端访问 redis会打印日志吗 redis 缓存服务器 怎么给外部系统用 redis.pid文件丢失什么原因,改怎么解决 Key-value stores键值存储能介绍一下吗? 求助各位,关于redis耗时比较严重的问题 一台windiws可以跑不同版本的redis吗 为什么自己包的红糖汤圆煮好后咬开红糖不能像水一样的流出来?还是固体。我用的红糖粉 为什么路边小吃店里面的汤圆不会变形,汤圆粉里面放了什么? 元宵粉为什么不能做汤圆。 玉米淀粉可以做汤圆吗? 糯米粉怎么做汤圆? 糯米粉可以做汤圆跟糯米糍之外.还可以做什么? 汤圆里不放淀粉可以么? 德国BD SENSORS 数字压力表用于油类以及气体的压力测量可以吗???? 德国BD SENSORS压力变送器 DMK457能满足造船工业和海上作业的特殊要求吗? oppo k7上市时间 oppo k7xk7 电脑打电话对方说我声音小 华为手机听筒声音小的解决方法是什么?