最新要闻

广告

手机

让孩子在家门口“有学上”“上好学”

让孩子在家门口“有学上”“上好学”

情人节礼物爱意甄选:BVLGARI 宝格丽推出七夕特别款项链、手表及包包 见证甜蜜浓情时刻

情人节礼物爱意甄选:BVLGARI 宝格丽推出七夕特别款项链、手表及包包 见证甜蜜浓情时刻

家电

redis的慢查询日志

来源:博客园


(相关资料图)

客户端请求生命周期分为:发送命令,排队,执行命令,返回结果。

慢查询只统计执行命令的时间,所以没有慢查询并不代表客户端没有超时问题,redis的慢查询记录时间指的是不包含向客户端响应,发送回复等io操作,而丹丹是执行一个查询命令所消耗的时间。

设置和查看SLOWLOG

慢查询配置相关参数

slowlog-log-slower-than 选项指定执行时间超过多少微秒(默认1秒)的命令请求会被记录到日志上。

如果这个值为100,那么执行超过100微秒的都会记录到慢查询中。

slowlog-max-len 选项最多保存多少条查询日志,当出妇女的数量等于设置条数时,在添加的新日志,会删除掉最先保存的旧的日志。

redis中有两种配置的方式修改一种是修改配置文件,一种是使用config set命令动态修改:

config set slowlog-log-slower-than 20000config set slowlog-max-len 1024slowlog get #查询慢查询日志slowlog get [n] #获取慢查询队列(n条) slowlog reset #清空重置慢查询日志
127.0.0.1:6379> slowlog get 11) 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。通过可视化工具查询。

关键词: