redis的慢查询日志
客户端请求生命周期分为:发送命令,排队,执行命令,返回结果。
慢查询只统计执行命令的时间,所以没有慢查询并不代表客户端没有超时问题,redis的慢查询记录时间指的是不包含向客户端响应,发送回复等io操作,而丹丹是执行一个查询命令所消耗的时间。
设置和查看SLOWLOG
慢查询配置相关参数
slowlog-log-slower-than 选项指定执行时间超过多少微秒(默认1秒)的命令请求会被记录到日志上。
如果这个值为100,那么执行超过100微秒的都会记录到慢查询中。
slowlog-max-len 选项最多保存多少条查询日志,当出妇女的数量等于设置条数时,在添加的新日志,会删除掉最先保存的旧的日志。
redis中有两种配置的方式修改一种是修改配置文件,一种是使用config set命令动态修改:
config set slowlog-log-slower-than 20000 config set slowlog-max-len 1024 slowlog get #查询慢查询日志 slowlog get [n] #获取慢查询队列(n条) slowlog reset #清空重置慢查询日志
127.0.0.1:6379> slowlog get 1 1) 1) (integer) 4 //每条日志唯一id编号 2) (integer) 1692282142 //命令执行的时间戳 3) (integer) 13//执行命令的时常,单位微秒 4) 1) "slowlog"//具体命令和参数 2) "get" 5) "172.17.0.1:38836"//ip端口 6) ""//客户端名称
生产环境中,慢查询配置
slowlog-max-len 线上建议调大慢查询列表,记录慢查询时redis会对长命令做阶段操作,病不会占用大量内存,增大慢查询列表,可以减缓慢查询被删除的可能,例如线上可以设置1000以上。 slowlog-log-slower-than ,默认超过10毫秒判定为慢查询需要根据redis并发量调整该值。 慢查询只记录命令执行时间,并不包括命令排队和网络传输,因为执行命令排队机制,慢查询会导致其他命令级联阻塞,因为客户端出现请求超时时,需要检查时间是否有对应慢查询,从而分析是否为慢查询导致的命令级联阻塞。 由于慢查询日志是先进先出的队列,也就是说慢查询较多情况下,可能丢失部分慢查询命令,防止这个发生,可以将slowlog get持久化到其他存储引擎中,比如mysql。通过可视化工具查询。
---------------------------------------------------------------------------
国之殇,未敢忘!
南京大屠杀!
731部队!
(有关书籍《恶魔的饱食》)以及核污染水排海等一系列全无人性的操作,购买他们的食品和为它们提供帮助只会更加变本加厉的害你,呼吁大家不要购买日本相关产品
昭昭前事,惕惕后人
吾辈当自强,方使国不受他人之侮!
---------------------------------------------------------------------------
作者:三号小玩家
出处:https://www.cnblogs.com/q1359720840/
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 版权信息
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2020-08-17 mabatis的sql标签