Intro

可能有一些命令需要很长时间才能在redis服务器上处理,导致请求超时。 长时间运行的命令的很少例子有 mget有大量的键,键*或写得不好的lua脚本。 可以运行通过 SlowLog 命令查看是否有请求花费比预期更长的时间。

Redis 慢日志概览

Redis Slow Log 是一个系统,用于记录超过指定执行时间的查询。执行时间不包括I / O操作,如与客户端交谈,发送回复等等,但只是实际执行命令所需的时间(这是执行命令的唯一阶段,其中线程被阻止并且不能同时服务于其他请求)。

您可以使用两个参数配置慢日志:

  • slowlog-log-slow-than 告诉 Redis 为了记录命令,执行时间(微秒)超过了多少。请注意,负数将禁用慢日志,而值为零将强制记录每条命令。
    slowlog-max-len 是慢日志的长度。最小值为零。当记录新的命令并且慢日志已经处于其最大长度时,为了留出空间,将最老的命令从记录的命令队列中移除。

配置可以通过编辑 redis.conf 或服务器运行时使用 CONFIG GETCONFIG SET 命令来完成。

查看慢日志

慢日志在内存中累积,因此没有写入关于慢命令执行信息的文件。这使得日志记录非常快,可以启用所有命令的日志记录(将slowlog-log-slow- config配置参数设置为零),同时影响较小。

要读取慢日志,使用SLOWLOG GET命令,该命令将返回慢日志中的每个条目。可以仅返回N个最近的条目,并将其他参数传递给该命令(例如SLOWLOG GET 10)。

请注意,为了读取慢日志输出,您需要使用 redis-cli 的最新版本,因为它使用了以前在 redis-cli 中执行的一些协议功能(深度嵌套的多批量响应)

输出格式

redis 127.0.0.1:6379> slowlog get 2
1) 1) (integer) 142) (integer) 13094482213) (integer) 154) 1) "ping"
2) 1) (integer) 132) (integer) 13094481283) (integer) 304) 1) "slowlog"2) "get"3) "100"

每个条目由四个字段组成:

  • 每个慢日志条​​目的唯一渐进标识符。
  • 处理记录的命令的UNIX时间戳。
  • 执行所需的时间量,以微秒为单位。
  • 组成命令参数的数组。

该条目的唯一ID可用于避免多次处理缓慢的日志条目(例如,您可能有一个脚本为每个新的慢日志条目发送电子邮件警报)。

在 Redis 服务器执行过程中,ID永远不会被重置,只有服务器重启才会重置它。

获取慢日志的当前数量

使用命令 SLOWLOG LEN 可以获得慢日志的长度 。

重置慢日志

你可以使用 SLOWLOG RESET 命令重置慢日志。一旦删除,信息将永远丢失。

Reference

  • https://weihanli.github.io/StackExchange.Redis-docs-cn/Timeouts.html
  • https://github.com/WeihanLi/TechNotes/issues/9
  • http://redis.cn/commands/slowlog

转载于:https://www.cnblogs.com/weihanli/p/redis-slowlog.html

redis 慢日志查询相关推荐

  1. redis设置慢查询日志

    Redis 的慢查询日志功能用于记录执行时间超过给定时长的命令请求, 用户可以通过这个功能产生的日志来监视和优化查询速度. 1.redis生命周期 慢查询发生在第3阶段 2.两个配置 2.1.slow ...

  2. 使用 monitor 命令查看 redis 请求日志

    monitor日志要实时拿 redis 是一个高性能.使用方便的非关系型数据库,我们在使用 redis 时,基本只需要关注存数据,取数据的功能,即 set,get,非常适合用作缓存服务器,降低后端数据 ...

  3. php kibana查询,Kibana+Logstash+Elasticsearch 日志查询系统搭建

    搭建该日志查询系统的目的就是为了运维.研发很方便的进行日志的查询.Kibana一个免费的web壳:Logstash集成各种收集日志插件,还是一个比较优秀的正则切割日志工具:Elasticsearch一 ...

  4. mysql 慢查询_mysql如何捕捉慢日志查询

    慢日志查询日志 查询超过变量 long_query_time指定时间值的为慢查询,但是查询获取锁(包括锁等待)的时间不计入查询时间内,mysql 记录慢查询日志是在查询执行完毕且已经完全释放锁之后才记 ...

  5. MySQL.分页 慢日志查询

    limit分页 select * from table_name limit 0,5  或者  select * from table_name limit 5 #取前5条数据 select * fr ...

  6. 正确使用索引(sql优化),limit分页优化,执行计划,慢日志查询

    查看表相关命令 - 查看表结构 desc 表名- 查看生成表的SQL show create table 表名- 查看索引 show index from 表名 使用索引和不使用索引 由于索引是专门用 ...

  7. MySQL高级 - 日志 - 查询日志

    查询日志 查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句. 默认情况下, 查询日志是未开启的.如果需要开启查询日志,可以设置以下配置 : #该选项用来开启查询日志 , 可 ...

  8. 11、如何开启慢日志查询?

    1.为什么要开启慢日志查询? 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 2.参数说明 slow_query_log 慢查询 ...

  9. Spring Boot之基于Redis实现MyBatis查询缓存解决方案

    转载自 Spring Boot之基于Redis实现MyBatis查询缓存解决方案 1. 前言 MyBatis是Java中常用的数据层ORM框架,笔者目前在实际的开发中,也在使用MyBatis.本文主要 ...

  10. Kubernetes 日志查询分析实践

    准备工作 为了完成后续的相关操作,我们需要准备一个 K8s 集群,操作步骤如下: 登陆容器服务控制台. 创建一个标准托管集群(杭州区域),在向导中勾选上[使用 EIP 暴露 API Server] 和 ...

最新文章

  1. strace,ltrace linux下跟踪进程调用的命令
  2. ROS 2 index翻译(七)——用Colcon编译功能包(package)
  3. STC89C52单片机 LED灯闪烁
  4. 微信小程序知识点梳理
  5. 7-26复习重载并实现重载部分符号
  6. 部署eureka和config
  7. php解析js的 arraybuffer_JS的所谓的第七种数据类型Symbol
  8. 城市运行一网统管_【宣传活动】持续开展城市运行“一网统管”建设宣传活动...
  9. linux-mv移动更名-硬链接
  10. 【解除Windows开机登陆密码的5种方法】
  11. cuSPARSE库:(三)Thread Safety(线程安全)
  12. python中安装decimal模块_第38天:Python decimal 模块
  13. diff git 代码实现_Git比对文件之间的差异
  14. java jshelllink_Jshell使用
  15. pcb 受潮_怎样让PCB远离潮湿危害
  16. CA(载波聚合)和MIMO
  17. 如何在被伽卡他卡教师端控制时解除控制
  18. 指纹锁的识别与原理及安全性
  19. JavaEE初学之jsp+JavaBean实现页面简单计算器
  20. 【路径规划】基于遗传算法求解多中心带时间窗车辆路径规划问题(VRPTW)matlab代码

热门文章

  1. JAVA中RGB字串转换为颜色
  2. eclipse不能调试某个文件的解决办法
  3. 安卓一个奇怪的LOG:ColorDrawable.setColor
  4. 基于rdf的php编程,RDF 简介
  5. C# lable及时显示 lable实时刷新
  6. c# Settings.settings 存储数据,读取数据
  7. VS C#/C++ 诊断工具找回 诊断工具打开 诊断工具发现
  8. 2021年高考成绩查询梧州市,2021年梧州高考状元是谁分数多少分,历年梧州高考状元名单...
  9. oracle如何储存超长汉子_厦门到惠州整车运输超长超宽超重运输
  10. vue实现上移下移_Vue实现table上下移动功能示例