为你自己学Redis
  • README
  • 安装
    • macos下安装redis
  • 第1章 构建Redis开发环境
    • 1.1 Redis概述
    • 1.2 了解必要的Docker技能
    • 1.3 安装和配置基于Docker的Redis环境
  • 第2章 实践Redis的基本数据类型
    • 2.1 Redis缓存初体验
    • 2.2 针对字符串的命令
    • 2.3 针对哈希类型变量的命令
    • 2.4 针对列表类型变量的命令
    • 2.5 针对集合的命令
    • 2.6 针对有序集合的命令
  • 第3章 实践Redis的常用命令
    • 3.1 键操作命令
    • 3.2 HyperLogLog相关命令
    • 3.3 lua脚本相关命令
    • 3.4 排序相关命令
  • 第4章 实践Redis服务器和客户端的操作
    • 4.1 Redis服务器管理客户端的命令
    • 4.2 查看Redis服务器的详细信息
    • 4.3 查看并修改服务器的常用配置
    • 4.4 多个客户端连接远端服务器
  • 第5章 Redis数据库操作实战
    • 5.1 切换数据库操作
    • 5.2 Redis事务操作
    • 5.3 地理位置相关操作
    • 5.4 位图数据类型的应用
    • 5.5 慢查询实战分析
  • 第6章 Redis数据持久化操作
    • 6.1 Redis持久化机制概述
    • 6.2 AOF持久化机制实战
    • 6.3 RDB持久化机制实战
    • 6.4 如何选用持久化方式
  • 第7章 搭建Redis集群
    • 7.1 搭建基于主从复制模式的集群
    • 7.2 搭建哨兵模式的集群
    • 7.3 搭建cluster集群
  • 第8章 GO整合MySQL与Redis
    • 8.1 GO通过redigo读写Redis
    • 8.2 Go与各种Redis数据类型
    • 8.3 Redis与MySQL的整合
    • 8.4 Redis缓存实战分析
  • 第9章 Redis应用场景与案例实现
    • 9.1 Redis消息队列实战
    • 9.2 Go实战Redis分布式锁
Powered by GitBook
On this page
  • 5.5.1 慢查询相关的配置参数
  • 5.5.2 用SLOWLOG GET命令观察慢查询
  • 5.5.3 慢查询相关命令
  1. 第5章 Redis数据库操作实战

5.5 慢查询实战分析

5.5.1 慢查询相关的配置参数

  • slowlog-log-slower-than:单位为微秒.超过该参数指定时长的查询会记录到日志中

  • slowlog-max-len:在慢查询日志中可以记录的日志条数.当慢查询日志的数量已经到达该参数时,每有一条新的慢查询日志写入,就会有最老的一条日志被删除

例:设置慢查询的时长和慢查询日志的条数

127.0.0.1:6379> CONFIG SET slowlog-log-slower-than 1
OK
127.0.0.1:6379> CONFIG SET slowlog-max-len 100
OK
127.0.0.1:6379> CONFIG REWRITE
OK

此时配置文件内容如下:

# Generated by CONFIG REWRITE
slowlog-max-len 100
slowlog-log-slower-than 1
save 3600 1
save 300 100
save 60 10000
user default on nopass ~* &* +@all
dir "/redis-6.2.13"

5.5.2 用SLOWLOG GET命令观察慢查询

  • SLOWLOG GET:返回所有的慢查询日志

127.0.0.1:6379> SET name Peter
OK
127.0.0.1:6379> GET name
"Peter"
127.0.0.1:6379> SLOWLOG GET
1) 1) (integer) 4
   2) (integer) 1692022815
   3) (integer) 3
   4) 1) "GET"
      2) "name"
   5) "127.0.0.1:57267"
   6) ""
2) 1) (integer) 3
   2) (integer) 1692022811
   3) (integer) 18
   4) 1) "SET"
      2) "name"
      3) "Peter"
   5) "127.0.0.1:57267"
   6) ""
3) 1) (integer) 2
   2) (integer) 1692022564
   3) (integer) 6865
   4) 1) "CONFIG"
      2) "REWRITE"
   5) "127.0.0.1:57267"
   6) ""
4) 1) (integer) 1
   2) (integer) 1692022560
   3) (integer) 5
   4) 1) "CONFIG"
      2) "SET"
      3) "slowlog-max-len"
      4) "100"
   5) "127.0.0.1:57267"
   6) ""
5) 1) (integer) 0
   2) (integer) 1692022556
   3) (integer) 13
   4) 1) "CONFIG"
      2) "SET"
      3) "slowlog-log-slower-than"
      4) "1"
   5) "127.0.0.1:57267"
   6) ""

我们以GET name命令的慢查询日志为例:

  • 1) (integer) 4:表示慢查询日志ID

  • 2) (integer) 1692022815:命令运行时的时间戳

  • 3) (integer) 3:命令运行的时长.单位为微秒

  • 4) 1) "GET" 2) "name":一个数组.其中第一个元素是执行的命令,后续的元素是命令的参数

  • 5) "127.0.0.1:57267":客户端地址和端口

  • 6) "":客户端名称

5.5.3 慢查询相关命令

  • SLOWLOG GET n:查看指定最新的n条慢查询日志

127.0.0.1:6379> SLOWLOG GET 1
1) 1) (integer) 5
   2) (integer) 1692022854
   3) (integer) 16
   4) 1) "SLOWLOG"
      2) "GET"
   5) "127.0.0.1:57267"
   6) ""
  • SLOWLOG LEN:获取慢查询日志的长度

127.0.0.1:6379> SLOWLOG LEN
(integer) 9
  • SLOWLOG RESET:清空慢查询日志

127.0.0.1:6379> SLOWLOG RESET
OK
127.0.0.1:6379> SLOWLOG LEN
(integer) 1

注:此处有1条慢查询日志是因为慢查询阈值设置的太低,导致SLOWLOG LEN也成为了慢查询

Previous5.4 位图数据类型的应用Next第6章 Redis数据持久化操作

Last updated 1 year ago