Redis慢查询的实现

 更新时间:2023年07月07日 09:14:22   作者:丶重明  
本文主要介绍了Redis慢查询的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Redis版本为6.2

1.什么是Redis慢查询

Redis慢查询是Redis提供的一项性能优化功能,它可以记录某个查询语句的执行时间、命令参数、执行次数等信息,从而帮助运维人员快速定位某个查询语句的性能问题。

Redis慢查询的原理是基于Redis的事务机制实现的。Redis的事务机制可以保证多个操作要么全部执行,要么全部不执行,这样就避免了在操作过程中发生的一些竞态条件,提高了数据的一致性。

同时,事务机制也会开启一个事务日志记录每个操作的详细信息,这样就可以记录每个查询语句的执行时间和执行次数等信息,从而实现慢查询功能。

慢查询的作用主要有两个:

1️⃣:快速定位某个查询语句的性能问题,从而优化或者调整该查询语句,提高查询性能;

2️⃣:二是避免出现因为某个查询语句性能问题导致的服务不稳定或者雪崩效应。

总之,Redis慢查询是一项非常实用的性能优化功能,对于Redis的使用和维护都非常重要。

2.慢查询的相关配置参数

slowlog-log-slower-than 10000

这个参数的单位为微秒,因此设置为1000000(即100毫秒)意味着记录每个命令100毫秒内的活动。如果将这个值设置为负数,则会禁用慢日志功能;如果将其设置为0,则会强制记录每个命令。

即超过由该参数指定时间的查询会记录到日志中

slowlog-max-len 128

表示在慢查询日志里可以记录的日志条数,当慢查询日志的数量已经达到该参数、新的慢查询日志到达时,就会把最老的一条日志删除

3.慢查询实战

因为测试,所以数值调整较小,实际情况根据自身环境调整

修改redis.conf配置文件

slowlog-log-slower-than 1
slowlog-max-len 100

如果没修改配置文件也可以用命令修改(二选一即可)

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

config rewrite意思是将上面两条配置写入配置文件

启动redis服务器

[root@localhost redis-6.2.12]# redis-server redis.conf 
[root@localhost redis-6.2.12]# ss -utpln | grep 6379
tcp    LISTEN     0      511    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=1364,fd=6))
tcp    LISTEN     0      511       [::1]:6379               [::]:*                   users:(("redis-server",pid=1364,fd=7))

配置好两个参数后,使用slowlog get命令观察慢查询

[root@localhost ~]# redis-cli
127.0.0.1:6379> set name003 beibei
OK
127.0.0.1:6379> get name003
"beibei"
127.0.0.1:6379> SLOWLOG get
1) 1) (integer) 2
   2) (integer) 1687316394
   3) (integer) 12
   4) 1) "get"
      2) "name003"
   5) "127.0.0.1:47312"
   6) ""
2) 1) (integer) 1
   2) (integer) 1687316389
   3) (integer) 37
   4) 1) "set"
      2) "name003"
      3) "beibei"
   5) "127.0.0.1:47312"
   6) ""
3) 1) (integer) 0
   2) (integer) 1687316212
   3) (integer) 1437
   4) 1) "COMMAND"
   5) "127.0.0.1:47312"
   6) ""

以上内容即为慢查询的日志,我们拿出一段作为讲解:

1) 1) (integer) 2
   2) (integer) 1687316394
   3) (integer) 12
   4) 1) "get"
      2) "name003"
   5) "127.0.0.1:47312"
   6) ""

1️⃣:一行是慢查询日志ID
2️⃣:二行是该命令运行的时间戳
3️⃣:三行是该命令的运行时长
4️⃣5️⃣:四五行是返回的命令及对应的参数
6️⃣:六行是执行该命令客户端地址
7️⃣:七行是客户端名称,没有即为空

4.慢查询相关命令

slowlog get

返回所有慢查询日志

slowlog get n

获取指定第n条慢查询的日志

slowlog len

获取慢查询日志的长度

slowlog reset

清空慢查询日志

到此这篇关于Redis慢查询的实现的文章就介绍到这了,更多相关Redis慢查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 为何Redis使用跳表而非红黑树实现SortedSet

    为何Redis使用跳表而非红黑树实现SortedSet

    本篇文章主要介绍了为何Redis使用跳表而非红黑树实现SortedSet,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 如何利用Redis分布式锁实现控制并发操作

    如何利用Redis分布式锁实现控制并发操作

    这篇文章主要介绍了如何利用Redis分布式锁实现控制并发操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Linux下Redis安装教程详解

    Linux下Redis安装教程详解

    这篇文章主要为大家详细介绍了Linux下Redis安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Redis自动化安装及集群实现搭建过程

    Redis自动化安装及集群实现搭建过程

    这篇文章主要介绍了Redis自动化安装以及集群实现搭建过程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 浅谈Redis中的缓存更新策略

    浅谈Redis中的缓存更新策略

    这篇文章主要介绍了浅谈Redis中的缓存更新策略,CacheAsidePatter是我们比较常用的缓存更新策略,其由缓存调用者在更新数据库时,在业务逻辑中设置缓存更新,需要的朋友可以参考下
    2023-08-08
  • Redis如何存储对象与集合示例详解

    Redis如何存储对象与集合示例详解

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型)本文介绍了关于Redis是如何存储对象与集合的相关资料,需要的朋友可以参考下
    2018-05-05
  • Redis的字符串是如何实现的

    Redis的字符串是如何实现的

    本文主要介绍了Redis的字符串是如何实现的,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Redis中不同持久化方式的差异对比

    Redis中不同持久化方式的差异对比

    大家应该都知道,Redis持久化方式主要有两种:RDB(Redis DataBase)和AOF(Append-only file),但是他们各自存储了什么内容?有什么差异呢?今天我来给大家做个小试验,需要的朋友可以参考下
    2024-03-03
  • Redis解决跨域存取Session问题

    Redis解决跨域存取Session问题

    本文主要介绍了Redis解决跨域存取Session问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Redis缓存lettuce更换为Jedis的实现步骤

    Redis缓存lettuce更换为Jedis的实现步骤

    在springboot中引入spring-boot-starter-data-redis依赖时,默认使用的是lettuce,如果不想使用lettuce而是使用Jedis连接池,本文主要介绍了Redis缓存lettuce更换为Jedis的实现步骤,感兴趣的可以了解一下
    2024-08-08

最新评论