资讯专栏INFORMATION COLUMN

Redis 不能不了解的小功能(一)

Coding01 / 899人阅读

摘要:慢查询日志就是系统计算每条命令的执行时间,当执行时间超过一定的阈值,就将这条命令的相关信息记录下来,也提供了类似的功能。设置有些高要求的系统不能容忍。的私有云就提供了这样的功能。今天就到这里,有时间我会再介绍其他实用的小功能。

注:我在开源中国的博客不用了,对开源中国的技术支持丧失信心了,开始转投segmentfault了
此为原文,转载请注明出处:https://segmentfault.com/a/11...

redis有很多小功能,但是很实用。我们来介绍几个。

慢查询

许多存储系统都提供慢查询日志来帮助开发运维人员定位问题,比如mysql。慢查询日志就是系统计算每条命令的执行时间,当执行时间超过一定的阈值,就将这条命令的相关信息记录下来,redis也提供了类似的功能。

这里列出一个图简单表述一个redis命令的生命周期:

需要注意的是,慢查询只统计命令命令执行的过程,网络传输等并不统计,所以如果说没有慢查询并不代表客户端没有超时的问题。

那么回到慢查询,这个东西如何配置,又存放在哪里?
redis提供几个配置,slowlog-log-slower-than 和 slowlog-max-len。

从字面上可以看出slowlog-log-slower-than就是之前提到的阈值,单位是微秒,默认是10000微秒也就是10ms。也就说如果一条命令执行时间超过10ms,就会被记录在慢日志中。那为什么10ms也算慢查询?在高并发得环境下,redis可以执行每秒几万的命令,10ms其实在这种环境下已经算是比较高的了。设置有些高要求的系统不能容忍。

而另一个参数, slowlog-max-len的用处是设置存储慢日志多少条。redis其实用一个列表在内存中保存慢日志。当慢日志列表已经达到最大的条数的时候,最早插入的那一条将被从列表移出。

配置这两个参数可以修改配置文件,可以再redis-cli中使用config set命令设置。

如果要将上面提到的方式配置的参数持久化到本地配置文件,可以执行config rewrite命令。

查询慢日志的命令:

slowlog get [n]其中n代表要查看多少条慢日志。

一条慢日志一般都会有前4个属性,到了redis4.0以上版本出现了后面两个属性。
查看慢日志的条数:

slowlog len

慢日志重置:
slowlog reset

慢查询能够有效帮助我慢找到redis的问题,但在实际使用中有几个建议:

slowlog-max-len配置建议:这个配置默认是128,线上可以调大,设置太小,可能比较重要的慢日志会被新的慢日志替换掉。线上可以设置1000以上,并不会占用大量内存。

slowlog-log-slower-than配置建议: 这个配置默认为10ms,需要根据并发量来确定,对于高流量高并发得场景,如果命令执行时间超过1ms以上,那么也就是说此时的redis最多支撑1000 ops。因此对于这种场景应设置为1ms。

慢查询统计只是命令执行时间,命令排队时间和网络传输时间并不包括,从客户端看,执行命令返回的时间肯定要比实际在redis执行命令的时间长。

慢查询日志是在内存中,新的日志会覆盖以前的日志,如果想要看以前的日志,需要定期将日志保存出来。比如定期执行slowlog get命令,然后倒入到关系型数据,以便于以后查询。redis的私有云CacheCloud就提供了这样的功能。

今天就到这里,有时间我会再介绍其他实用的小功能。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36680.html

相关文章

  • Redis 能不了解的小功能(二)

    摘要:举例使用命令对键进行扫描采样,从中找到内存占比较大的键值,显示出来。有时候在中设置一个中文的当然我一般不这么做,但是在的时候拿到的却是二进制的数据,如果使用则可以返回中文,举例这篇就先介绍这么多,下篇将介绍相关的小功能。 本文原创,转载请注明 上一篇介绍了redis的慢查询,这次介绍一下 redis-cli 命令 redis-cli redis-cli一般使用的参数有-h、-p、-c...

    yeyan1996 评论0 收藏0
  • Redis适合用来做什么?

    摘要:的种种优势源自于他的设计简单直接的单线程内存操作。此外,因为是单线程的,过大尺寸的数据访问会所有其他的操作。但无论是还是,都会受到业务需求的制约不是所有业务都适合用的。那么第一条呢是单线程执行的。不是不可能,但要反复确认这样做的必要性。 Redis是个流行的in-momery存储。接口好用,性能也很强,还支持多种数据结构,加上各种HA和Cluster方案,实在是居家旅行、杀人灭口、必备...

    番茄西红柿 评论0 收藏0
  • 个开源的小程序登录模块组件(token)

    摘要:项目目录包中的就是对配置参数的读取。包是存放一个的请求工具。返回值为空存在错误码,内容与存在用户的信息进行对比,返回用户,不存在则注册用户模拟获取到的用户记得添加扫描包路径,一个配合小程序登录的前后台组件形式,附带前端小程序代码 先了解下SSO 对于单点登陆浅显一点的说就是两种,一种web端的基于Cookie、另一种是跨端的基于Token,一般想要做的都优先做Token吧,个人建议,因...

    curlyCheng 评论0 收藏0
  • 现代后端开发者必备技能-2018版

    摘要:现在开始创建一个包并分发给其他人使用,并确保遵循你迄今为止学到的标准和最佳实践。第步实践对于练习,继续编写单元测试,以完成目前为止所做的实际任务,特别是你在步骤中所做的练习。 今天的Web开发与几年前完全不同,有很多不同的东西可以很容易地阻止任何人进入Web开发。这是我们决定制作这些循序渐进的视觉指南的原因之一,这些指南展示了更大的图景,并让任何人清楚了解他们在网页开发中扮演的角色。 ...

    eternalshallow 评论0 收藏0
  • 使用redis进行排行榜的小秘诀

    摘要:正是通过分数来为集合中的成员进行从小到大的排序。值可以是整数值或双精度浮点数。示例获取用户当前的排名当前排名为第三,则输出获取用户排名命令参数返回有序集中,成员的值。排名以为底,也就是说,值最小的成员排名为。 前言 在日常一些简单的活动开发中,我经常会碰到需要对用户的分值等进行排行,此时一般会选择redis的有序集合对用户的分数进行存储,但是不同的场景排行榜的方式也略有不同,以下根据自...

    paraller 评论0 收藏0

发表评论

0条评论

Coding01

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<