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]LeetCode33. 搜索旋转排序数组 | Search in Rotated Sorted Array

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  2. [Swift]LeetCode286. 墙和门 $ Walls and Gates

    You are given a m x n 2D grid initialized with these three possible values. -1 - A wall or an obstac ...

  3. [Swift]LeetCode992. K 个不同整数的子数组 | Subarrays with K Different Integers

    Given an array A of positive integers, call a (contiguous, not necessarily distinct) subarray of A g ...

  4. mybatis xml < >

    [参考文章]:mybatis 中的 xml 配置文件中 ‘<’. ‘>’ 处理 1.使用转义字符将 ‘<’. ‘>’ 替换掉 描述 字符 转义字符小于号 < <大于 ...

  5. kubernetes系列之ConfigMap使用方式

    作用理解 核心用途就是容器和配置的分离解耦. 如启用一个mysql容器,mysql容器重要的文件有两部分,一部分为存储数据文件,一部分为配置文件my.cnf,存储数据可以用持久存储实现和容器的分离解耦 ...

  6. 祝雷(依乐祝):一份来自29岁.NET老程序员的自白

    潘老师的文笔果然了得,经过潘老师的妙笔生花后,文章的阅读体验果然好了很多!这里再次感谢潘老师的支持! 祝雷(合肥.NET 俱乐部发起人) [个人介绍] 博客园知名博主(依乐祝).6年以上.NET技术栈 ...

  7. java代码之美(7)---guava之Bimap

    guava之Bimap bimap的作用很清晰:它是一个一一映射,可以通过key得到value,也可以通过value得到key. 一.概述 1.bimap和普通HashMap区别 (1)在Java集合 ...

  8. Javascript基本类型回顾

    本文是学习和总结ECMAScript5.1规范形成的.是对规范中所提及的Javascript类型进行剖析后的个人观点的表达(如有Bug望各位道友指正).主要是各类型的实例方法,不包含任务构造函数的方法 ...

  9. ASP.NET Core WebAPI控制器返回类型的最佳选项

    前言 从.NET Core 2.1版开始,到目前为止,控制器操作可以返回三种类型的WebApi响应.这三种类型都有自己的优点和缺点,但都缺乏满足REST和高可测性的选项. ASP.NET Core中可 ...

  10. SignalR学习笔记(二)高并发应用

    虽然SignalR借助Websocket提供了很强大的实时通讯能力,但是在有些实时通讯非常频繁的场景之下,如果使用不当,还是会导致服务器,甚至客户端浏览器崩溃. 以下是一个实时拖拽方块项目的优化过程 ...