6 Redis的慢查询&配置

本文详细介绍了Redis的慢查询设置,包括命令执行流程、配置参数(如slowlog-log-slower-than和slowlog-max-len)的实战操作,以及推荐的生产环境配置。重点讲解了慢查询原理和如何根据系统特性调整配置以提高性能。
摘要由CSDN通过智能技术生成

1、redis的命令执行流程

在这里插入图片描述
redis的慢查询只针对步骤3
默认情况下,慢查询的阈值是10ms

  1. 在配置文件中进行配置
//这个参数的单位为微秒
//如果将这个值设置为负数,则会禁用慢日志功能
//如果将其设置为0,则会强制记录每个命令
slowlog-log-slower-than 10000
  1. 超过指定时间的查询会记录到日志中
//表示在慢查询日志里可以记录的日志条数,当慢查询日志的数量已经达到该参数、新的慢查询日志到达时,就会把最老的一条日志删除
slowlog-max-len 128

2、慢查询实战

  1. 修改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	#config rewrite意思是将上面两条配置写入配置文件
OK
  1. 启动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))
  1. 配置好两个参数后,使用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️⃣:七行是客户端名称,没有即为空

注意:慢查询存在了slowlog的内存队列中,是链表结构

slowlog get		#返回所有慢查询日志
slowlog get n	#获取指定第n条慢查询的日志
slowlog len		#获取慢查询日志的长度
slowlog reset	#清空慢查询日志

3、慢查询原理&推荐方案

建议:

slowlog-max-len 1000	#生产环境建议配置在1000以上,否则你想看的记录可能别删除了
slowlog-log-slower-than 1	#单位是微秒,如果是高并发,高流量的系统的系统建议1毫秒

所谓的多线程,只是在IO的部分,内部执行命令还是单线程执行的,是串行的.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值