前言

简单整理一下redis的慢查询。

正文

什么是慢查询呢?

一般存储系统就是系统在命令执行前后计算每条命令的执行时间,当超出预设阀值,就将这条命令的相关信息记录下来。

但是有人可能没有看到慢查询日志,就以为服务是正常得到。

实际上客户端超时访问有很多情况,起码有个网络,但是现在一般不会出现这种情况了。那么我们还知道redis是单线程的,那么其命令是要进行排队的,如果排队时间过长的话,那么这个时候就会超时。

Redis提供了slowlog-log-slower-than和slowlog-max-len配置来解决这两个 问题。

从字面意思就可以看出,slowlog-log-slower-than就是那个预设阀值, 它的单位是微秒(1秒=1000毫秒=1000000微秒),默认值是10000,假如执 行了一条“很慢”的命令(例如keys*),

如果它的执行时间超过了10000微 秒,那么它将被记录在慢查询日志中。

如果slowlog-log-slower-than=0会记录所有的命令,slowlog-log-slower- than<0对于任何命令都不会进行记录。

slowlog-max-len只是说明了慢查询日志最多存储多少 条,并没有说明存放在哪里?实际上Redis使用了一个列表来存储慢查询日 志,slowlog-max-len就是列表的最大长度。

一个新的命令满足慢查询条件时 被插入到这个列表中,当慢查询日志列表已处于其最大长度时,最早插入的 一个命令将从列表中移出,例如slowlog-max-len设置为5,当有第6条慢查询 插入的话,那么队头的第一条数据就出列,第6条慢查询就会入列。

在Redis中有两种修改配置的方法,一种是修改配置文件,另一种是使用config set命令动态修改。

config set slowlog-log-slower-than 20000
config set slowlog-max-len 1000
config rewrite

config rewrite 将会写入到配置文件中。

那么看一下慢查询的查看命令:

这时候可以查看到没有慢日志。

如果有列表那么会有几个参数:

config set slowlog-log-slower-than 0

那么我设置其为0.

可以看到上面记录了每一条日志。

这里就变成了四条,因为slowlog len也是一条命名。

可以使用slowlog reset 进行重置。

那么线上配置我们应该注意什么呢?

slowlog-max-len配置建议:线上建议调大慢查询列表,记录慢查询时 Redis会对长命令做截断操作,并不会占用大量内存。

增大慢查询列表可以 减缓慢查询被剔除的可能,例如线上可设置为1000以上。

·slowlog-log-slower-than配置建议:默认值超过10毫秒判定为慢查询, 需要根据Redis并发量调整该值。由于Redis采用单线程响应命令,

对于高流 量的场景,如果命令执行时间在1毫秒以上,那么Redis最多可支撑OPS不到 1000。因此对于高OPS场景的Redis建议设置为1毫秒。

·由于慢查询日志是一个先进先出的队列,也就是说如果慢查询比较多 的情况下,可能会丢失部分慢查询命令,为了防止这种情况发生,可以定期 执行slow get命令将慢查询日志持久化到其他存储中(例如MySQL),然后 可以制作可视化界面进行查询。

下一节redis shell 就是介绍一下redis命令行。

redis 简单整理——慢查询[八]的更多相关文章

  1. Redis进阶实践之十八 使用管道模式提高Redis查询的速度

    原文:Redis进阶实践之十八 使用管道模式提高Redis查询的速度 一.引言             学习redis 也有一段时间了,该接触的也差不多了.后来有一天,以为同事问我,如何向redis中 ...

  2. .NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  3. 转载:.NET Web开发技术简单整理

    在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...

  4. Java中Redis简单入门

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...

  5. MYBATIS 简单整理与回顾

    这两天简单整理了一下MyBatis 相关api和jar包这里提供一个下载地址,免得找了 链接:http://pan.baidu.com/s/1jIl1KaE 密码:d2yl A.简单搭建跑项目 2.进 ...

  6. Redis知识整理

    Redis知识整理 转自:https://www.cnblogs.com/rjzheng/p/9096228.html 1.单线程模型 Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返 ...

  7. .NET Web开发技术简单整理 转

    .NET Web开发技术简单整理 原文:http://www.cnblogs.com/SanMaoSpace/p/3157293.html 在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何 ...

  8. redis简单了解与简单使用

    redis数据库 为什么要学习redis """ 1.redis是内存 no-sql 数据库,相比mysql等硬盘数据库效率高 2.在内存值配置数据库使用,而不直接使用内 ...

  9. Redis简单的数据操作(增删改查)

    #Redis简单的数据操作(增删改查): 字符串类型 string 1. 存储: set key value 127.0.0.1:6379> set username zhangsan OK 2 ...

  10. 一篇文章带你了解NoSql数据库——Redis简单入门

    一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇 ...

随机推荐

  1. Java //在150之内 是三的倍数 输出Zzz 是5个倍数输出 Lll 是7的倍数输出zlzl

    1 //在150之内 是三的倍数 输出Zzz 是5个倍数输出 Lll 是7的倍数输出zlzl 2 int i =1; 3 for(i = 1; i<=150;i++) 4 { 5 System. ...

  2. TCP 中的 Delay ACK 和 Nagle 算法

    哈喽大家好,我是咸鱼. 今天分享一篇大佬的文章,作者:卡瓦邦噶! 文章链接:https://www.kawabangga.com/posts/5845 教科书介绍的 TCP 内容通常比较基础:包括三次 ...

  3. python Ai 应用开发基础训练,字符串,字典,文件

    --------------------------------------    编程能是大模型应用的天花板............................................. ...

  4. 幕布 和 xmind 的大纲模式 都很不错

    幕布 和 xmind 的大纲模式 都很不错 xmind 思维导图 ctrl+a 折叠所有子分支 然后就能一级一级展开 最后选择用 xmind的大纲模式,因为免费. 幕布收费,限300个节点,小数据量的 ...

  5. be动词 系动词 连缀动词 Linking Verb

    be动词 系动词 连缀动词 Linking Verb be 原型 am 第一人称单数形式 is 第三人称单数形式 are 第二人称单数和复数形式 been 过去分词 being 现在分词 was 第一 ...

  6. PV的回收策略、访问策略和状态

    PersistentVolume(PV)的回收策略.访问策略和状态是Kubernetes存储管理中的重要概念. 回收策略 Retain:当PV的回收策略设置为Retain时,即使对应的Persiste ...

  7. 手撕fft系列之频移fftshift源码解析

    壹: fft在数字信号处理领域是一个神一样的存在.要好好熟悉一下.这里给出频移的算法源码解析. 所谓的频移,就是把数字信号的频频顺序打乱,移动一些.这个在防止啸叫和辅听领域应用十分广泛. 贰: 这个源 ...

  8. CSS(三大特性、盒子模型的组成(boder、padding、margin)、ps基本操作)

    一.css三大特性 1.层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式.层叠性主要解决样式冲突的问题 层叠性原则: 样式冲突,遵循的原则是就近原则,哪个样式离结构近, ...

  9. 网站https 问题记录

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 开发过程中 常见的 https 问题 - 避坑 做前端多年,发现有些问题需要重复解决很多次,浪费了不少时间,https 导致的问题就属于其 ...

  10. MindSponge分子动力学模拟——自建力场(2024.03)

    技术背景 在MindSponge教程合集中我们已经介绍了很多使用MindSponge进行分子动力学模拟的方法,这里主要介绍在MindSponge中自定义一个力场.在传统的MD软件中,如果你希望去开发一 ...