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) 14
2) (integer) 1309448221
3) (integer) 15
4) 1) "ping"
2) 1) (integer) 13
2) (integer) 1309448128
3) (integer) 30
4) 1) "slowlog"
2) "get"
3) "100"

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

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

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

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

获取慢日志的当前数量

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

重置慢日志

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

Reference

redis 慢日志查询的更多相关文章

  1. Redis慢日志查询

    Redis slowlog 是个什么 redis的slow log记录了那些执行时间超过规定时长的请求.执行时间不包括I/O操作(比如与客户端进行网络通信等),只是命令的实际执行时间(期间线程会被阻塞 ...

  2. 浅谈Redis之慢查询日志

    首先我们需要知道redis的慢查询日志有什么用?日常在使用redis的时候为什么要用慢查询日志? 第一个问题: 慢查询日志是为了记录执行时间超过给定时长的redis命令请求 第二个问题: 让使用者更好 ...

  3. redis设置慢查询日志

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

  4. log4net.redis+logstash+kibana+elasticsearch+redis 实现日志系统

    前端时间写了个随笔 log4net.NoSql +ElasticSearch 实现日志记录 ,因项目原因需要把日志根java平台的同事集成采用logstash+kibana+elasticsearch ...

  5. 查看 redis 请求日志

    转: 查看 redis 请求日志 2019-05-29 15:34:41 打卤 阅读数 1980更多 分类专栏: other   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转 ...

  6. Tapdata Cloud 2.1.5来啦:新增支持Amazon RDS数据库,错误日志查询更便捷,Agent部署细节再优化

      需求持续更新,优化一刻不停--Tapdata Cloud 2.1.5 来啦!   最新发布的版本中,数据连接再上新,同时新增任务报错相关信息快速查询入口,开始支持 JVM 参数自定义设置.   更 ...

  7. ELK_elk+redis 搭建日志分析平台

    这个是最新的elk+redis搭建日志分析平台,今年时间是2015年9月11日. Elk分别为 elasticsearch,logstash, kibana 官网为:https://www.elast ...

  8. linux下利用elk+redis 搭建日志分析平台教程

    linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm   elk 日志分析+redis数据库可以创建一个不错的日志分析平台了 ...

  9. Mysql慢日志查询

    MYSQL慢查询配置: 查看是否启用慢日志查询: show VARIABLES like '%quer%'; 没有配置的情况下慢查询是关闭的:

随机推荐

  1. [Swift]LeetCode108. 将有序数组转换为二叉搜索树 | Convert Sorted Array to Binary Search Tree

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ...

  2. Python面向对象中的类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的 两个 核心概念 1.1 类 类 是对一群具有 相同 特征 或者 行为 的事物的一个统 ...

  3. iOS学习——Quartz2D学习之DrawRect

    Quartz2D学习之DrawRect 本文以问答形式主要讲述Quartz2D的相关内容,参考内容是网上下载的学习视频资料. 1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Ma ...

  4. Java语言的简单基础

    1.Java 是一种高级程序设计语言. 2.Java 是大小敏感的程序语言. 3.Java 中的 public 修饰的类名一般要与文件名相同,但也有特列:内部类. 4.Java 程序能在任何操作系统中 ...

  5. SH2018笔试题之成长值问题

    一.题目 详见代码 二.代码 import java.util.Scanner; /** * 3 * 1 1 5 10 * 2 3 4 * 1 4 6 -5 */ public class main4 ...

  6. docker 常用命令记录

    下载镜像 docker pull imagesName 查看所有镜像 docker images 查看当前运行的镜像 docker ps 运行镜像 docker run imagesName 停止运行 ...

  7. qt之fiddler抓包

    最近项目中使用到了Qt的网络库,在用的过程中也发现了不少坑和问题,本文仅仅作为记录,方便日后查阅.    因为我们整个客户端的gui都是使用qt来完成的,心想qt既然有网络库,而且真心觉着qt封装的控 ...

  8. Unity GC 优化要点

    参考:http://blog.csdn.net/znybn1/article/details/76464896 为啥要点?因为讲的重点. 游戏运行时来存储数据,当这些数据不再被使用时,存储这些数据的内 ...

  9. Lucene 04 - 学习使用Lucene的Field(字段)

    目录 1 Field的特性 2 常用的Field类型 3 常用的Field种类使用 3.1 准备环境 3.2 需求分析 3.3 修改代码 3.4 重新建立索引 1 Field的特性 Document( ...

  10. Chapter 4 Invitations——22

    "Are you going all by yourself?" he asked, and I couldn't tell if he was suspicious I had ...