redis专题--slow log详解

SLOWLOG subcommand [argument]

什么是 SLOWLOG

Slow log 是 Redis 用来记录查询执行时间的日志系统。

查询执行时间指的是不包括像客户端响应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。

另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。

设置 SLOWLOG

Slow log 的行为由两个配置参数(configuration parameter)指定,可以通过改写 redis.conf 文件或者用 CONFIG GETCONFIG SET 命令对它们动态地进行修改。

第一个选项是 slowlog-log-slower-than ,它决定要对执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录。

比如执行以下命令将让 slow log 记录所有查询时间大于等于 100 微秒的查询:

CONFIG SET slowlog-log-slower-than 100

而以下命令记录所有查询时间大于 1000 微秒的查询:

CONFIG SET slowlog-log-slower-than 1000

另一个选项是 slowlog-max-len ,它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len 时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log ,以此类推。

以下命令让 slow log 最多保存 1000 条日志:

CONFIG SET slowlog-max-len 1000

使用 CONFIG GET 命令可以查询两个选项的当前值:

redis> CONFIG GET slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "1000"

redis> CONFIG GET slowlog-max-len
1) "slowlog-max-len"
2) "1000"

查看 slow log

要查看 slow log ,可以使用 SLOWLOG GET 或者 SLOWLOG GET number 命令,前者打印所有 slow log ,最大长度取决于 slowlog-max-len 选项的值,而 SLOWLOG GET number 则只打印指定数量的日志。

最新的日志会最先被打印:

# 为测试需要,将 slowlog-log-slower-than 设成了 10 微秒

redis> SLOWLOG GET
1) 1) (integer) 12                      # 唯一性(unique)的日志标识符
   2) (integer) 1324097834              # 被记录命令的执行时间点,以 UNIX 时间戳格式表示
   3) (integer) 16                      # 查询执行时间,以微秒为单位
   4) 1) "CONFIG"                       # 执行的命令,以数组的形式排列
      2) "GET"                          # 这里完整的命令是 CONFIG GET slowlog-log-slower-than
      3) "slowlog-log-slower-than"

2) 1) (integer) 11
   2) (integer) 1324097825
   3) (integer) 42
   4) 1) "CONFIG"
      2) "GET"
      3) "*"

3) 1) (integer) 10
   2) (integer) 1324097820
   3) (integer) 11
   4) 1) "CONFIG"
      2) "GET"
      3) "slowlog-log-slower-than"

# ...

日志的唯一 id 只有在 Redis 服务器重启的时候才会重置,这样可以避免对日志的重复处理(比如你可能会想在每次发现新的慢查询时发邮件通知你)。

查看当前日志的数量

使用命令 SLOWLOG LEN 可以查看当前日志的数量。

请注意这个值和 slower-max-len 的区别,它们一个是当前日志的数量,一个是允许记录的最大日志的数量。

redis> SLOWLOG LEN
(integer) 14

清空日志

使用命令 SLOWLOG RESET 可以清空 slow log 。

redis> SLOWLOG LEN
(integer) 14

redis> SLOWLOG RESET
OK

redis> SLOWLOG LEN
(integer) 0
可用版本:
>= 2.2.12
时间复杂度:
O(1)
返回值:
取决于不同命令,返回不同的值。
时间: 2024-10-10 04:18:27

redis专题--slow log详解的相关文章

NoSQL之Redis高级实用命令详解--安全和主从复制

Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker 所有分类  >  数据库相关  >  NoSQL数据库 NoSQL之Redis高级实用命令详解--安全和主从复制 NoSQL Redis   2014-01-09 22:52:47 发布 您的评价:       0.0   收

redis.conf参数配置文件详解

Redis是一个应用非常广泛的高性能Key-Value型数据库,与memcached类似,但功能更加强大! 本文将按照不同功能模块的方式,依次对各个功能模块的配置参数进行详细介绍. GENERAL ./redis-server /path/to/redis.conf 按照指定的配置文件启动 include /path/to/other.conf 包含其它的redis配置文件 daemonize yes 启用后台守护进程运行模式 pidfile /var/run/redis.pid redis启动

Redis的事务功能详解

Redis的事务功能详解 MULTI.EXEC.DISCARD和WATCH命令是Redis事务功能的基础.Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项: >Redis会将一个事务中的所有命令序列化,然后按顺序执行.Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求.这样便能保证Redis将这些命令作为一个单独的隔离操作执行. > 在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行.因此,Redis事务能够保证

redis基础及配置文件详解

一.redis部署与使用 redis 基础 官网地址https://redis.io/ Redis和 Memcached 是非关系型数据库,也称为NoSQL数据库 ,MySQL . Mariadb . SQL S erver . PostgreSQL .Oracle 数据库 属于关系型数据 RDBMS, Relational Database Management System redis 简介 Redis (Remote Dictionary S erver 在 2009 年 发布 开发者 S

linux下redis与phpredis安装详解与简单操作

首先下载redis安装包 [[email protected] ~]#wget http://download.redis.io/releases/redis-3.0.2.tar.gz [[email protected] ~]# tar xzf redis-3.0.2].tar.gz [[email protected] ~]# cd redis-3.0.2 [[email protected] redis-3.0.2]#ls [[email protected] redis-3.0.2]#m

Redis中redis.conf里面配置详解

是否将redis设置为守护程序,默认为no daemonize yes 如果设置为守护程序,需要指定pid文件 pidfile /var/run/redis/redis-server.pid redis监听端口 (渗透人员对端口肯定超级敏感) port 65432 绑定监听端口 bind 127.0.0.1 (渗透人员注意,连接redis的ip限制,跳板准备好) 工作目录 dir /home/lidanqing01/redis (渗透人员注意,数据库存放地址) 数据库名字 dbfilename

redis安装与配置文件详解

redis是什么: redis是开源,BSD许可,高级的key-value存储系统.,可以用来存储字符串,哈希结构,链表,集合,因此,常用来提供数据结构服务. redis和memcached的对比: 1: redis可以用来做存储(storge), 而memccached是用来做缓存(cache) 这个特点主要因为其有"持久化"的功能. 2: 存储的数据有"结构",对于memcached来说,存储的数据,只有1种类型--"字符串",而redis则

非关系型数据库(NoSQL)——Redis安装及部署详解

在现在的互联网大潮中,NoSQL可谓是家喻户晓,Redis作为NoSQL中及其重要的一员,使我们走向架构道路的一条必经之路.作为运维工程师来说,是必须要掌握的! 既然提到了Redis数据库是非关系型数据,并且需要掌握Redis数据库.那么关于关系型数据库与非关系型数据库的基本概念是必须要了解的. 一.关系型数据库与非关系型数据库的基本概念: 数据库按照其结构可以分为关系型数据库与其他数据库,而这些其他数据库,我们统称为非关系型数据库. 1.关系型数据库 关系型数据库是一个结构化的数据库,创建在关

NoSQL -- redis 安装 主从 配置详解 常用命令

Redis 也是key-value存储系统,官方站点 http://redis.io,但相对于memcache,有如下优势: 1.支持更多地value类型(string.hash.lists.sets.sorted sets等): 2.支持数据持久化,预防服务重启后需要重新存储: redis 有两种文件格式:全量数据(RDB=redis database).增量请求(aof=append only file). 前者是将内存中的数据写进磁盘,便于下次读取文件时直接进行加载,快照形式: 后者是将r