redis 学习(10)-- redis 慢查询
redis 慢查询
什么是慢查询
MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里。
redis 的生命周期
- 客户端向Redis服务器发送命令
 - 命令请求在请求队列中排队等待处理
 - 执行命令
 - 返回命令结果
 

redis 慢查询
- 慢查询发生在生命周期的第三阶段,是指仅仅执行命令阶段比较慢被称为慢查询。
 - 客户端超时不一定是慢查询,但是慢查询时是客户端超时的一个可能因素。
 
redis 慢查询相关配置
1. slowlog-max-len
它决定了慢查询日志最多能保存多少条日志,slow log本身是一个内存中的FIFO队列,当队列大小超过slowlog-max-len时,最旧的一条日志将被删除,而最新的一条日志加入到slow log中。
- 默认值:128
 - 支持动态配置
 
2. slowlog-log-slower-than
它决定要对执行时间大于多少微秒(microsecond , 1秒=1,000,000 微妙)的查询进行记录
- 默认值:10000
 - slowlog-log-slower-than = 0 ,记录所有命令
 - slowlog-log-slower-than < 0 , 不记录任何命令
 - 支持动态配置
 
慢查询配置方法
1. 默认值
- config get slowlog-max-len = 128
 - config get slowlog-log-slower-than = 10000
 
2. 修改配置文件重启
3. 动态配置
- config set slowlog-max-len 1000
 - config set slowlog-log-slower-than 1000
 
慢查询相关命令
1. slowlog get [n]
含义:获取慢查询列表中的慢查询信息
2. slowlog len
含义:获取慢查询队列长度
slowlog reset
含义:清空慢查询队列
慢查询运维经验
- slowlog-max-len 不要设置过大,默认10ms,通常设置1ms
- 因为Redis的qps是万级别的,即每秒应能执行10000次请求
 - 当一条命令执行1ms时,那每秒只能执行1000次请求
 
 - slowlog-log-slower-than 不要设置地过小,通常设置1000左右
 - 需要理解命令的生命周期
 - 定期持久化慢查询
- 因为慢查询只存储于内存中,一宕机慢查询数据就会丢失
 - 通过定期slowlog get将慢查询数据转存到MySQL或者ES中
 
 
redis 学习(10)-- redis 慢查询的更多相关文章
- redis学习之——redis.conf配置(基本)文件学习
		
# Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...
 - Redis学习笔记~Redis主从服务器,读写分离
		
回到目录 Redis这个Nosql的存储系统一般会被部署到linux系统中,我们可以把它当成是一个数据服务器,对于并发理大时,我们会使用多台服务器充当Redis服务器,这时,各个Redis之间也是分布 ...
 - redis学习笔记-redis的安装
		
Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择, ...
 - Redis学习笔记-Redis内部数据结构
		
Redis内部数据结构 Redis和其他key-value数据库的很大区别是它支持非字符串类型的value值.它支持的value值的类型如下: sds (simple dynamic string) ...
 - Redis学习笔记--Redis配置文件redis.conf参数配置详解
		
########################################## 常规 ########################################## daemonize n ...
 - redis学习笔记——Redis过期键的删除策略
		
Redis过期键的删除策略 对于过期键一般有三种删除策略 定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作: 惰性删除:放任键过期 ...
 - Redis学习笔记——Redis的基本操作
		
之前介绍过如何在ubuntu安装Redis服务器:https://www.cnblogs.com/zifeiy/p/9062738.html 接下来,我们在Redis上进行一些基本的操作. 所县使用命 ...
 - ElasticSearch 5学习(10)——结构化查询(包括新特性)
		
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
 - redis 学习笔记——redis集群
		
redis-cluster 简介 redis-cluster是一个分布式.容错的redis实现,redis-cluster通过将各个单独的redis实例通过特定的协议连接到一起实现了分布式.集群化的目 ...
 - redis学习总结-redis作为MyBatis的自定义缓存
		
1.RedisCache.java package com.houtai.cache; import java.util.concurrent.locks.ReadWriteLock; import ...
 
随机推荐
- (五)C语言之表达式
 - vue-cli脚手架构建了项目,想去除Eslint验证,如何设置?
			
vue-cli脚手架构建了项目,想去除Eslint验证,如何设置? 在webpack.base.conf.js里面删掉下面: preLoaders: [ { test: /\.vue$/, loade ...
 - 初识 Premiere
			
本记录基于Premiere Pro CC 2015.3,编号不连贯,以视频编号为准,对应视频没有有用信息的没有记录. 1.3 基本工作界面和预设工作区 将面板独立出来:按住Ctrl拖动窗口 将关闭的面 ...
 - Nginx-rtmp之 AMF0 的处理
			
1. 综述 当检测到接收到的 RTMP 消息中 Message Header 中 message type id 为 20 时,表示,接收到的是 AMF 类型的数据, 因此需要对接收的数据进行 AMF ...
 - [ASP.NET应用到的时间处理函数]
			
第一种形式: System.DateTime.Now.ToString("D"); //2017年6月2日 System.DateTime.Now.ToString ...
 - javascript定时器方法使用
			
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - 【VBA】学习中出现的错误
			
1.自定义函数 自定义函数尽量不要使用,容易导致excel卡,让你怀疑人生!!!
 - python 生成随机红包
			
假设红包金额为money,数量是num,并且红包金额money>=num*0.01 原理如下,从1~money*100的数的集合中,随机抽取num-1个数,然后对这些数进行排序,在排序后的集合前 ...
 - 几行python代码解决相关词联想
			
日常生活中经常会遇到相关词联想的问题,也就是说输入一个词汇,把相关的词汇查询出来,听起来这个做法也不是太难,但如何去积累那么多的词汇,再用好的算法将相关内容联系起来,本身还是不简单的.笔者认为最简单的 ...
 - LoadRunner参数化详解
			
LoadRunner参数化详解 距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又 ...