注:我在开源中国的博客不用了,对开源中国的技术支持丧失信心了,开始转投segmentfault了
此为原文,转载请注明出处:https://segmentfault.com/a/11...mysql
redis有不少小功能,可是很实用。咱们来介绍几个。redis
慢查询
许多存储系统都提供慢查询日志来帮助开发运维人员定位问题,好比mysql。慢查询日志就是系统计算每条命令的执行时间,当执行时间超过必定的阈值,就将这条命令的相关信息记录下来,redis也提供了相似的功能。sql
这里列出一个图简单表述一个redis命令的生命周期:segmentfault
须要注意的是,慢查询只统计命令命令执行的过程,网络传输等并不统计,因此若是说没有慢查询并不表明客户端没有超时的问题。网络
那么回到慢查询,这个东西如何配置,又存放在哪里?
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命令设置。spa
若是要将上面提到的方式配置的参数持久化到本地配置文件,能够执行config rewrite命令。日志
查询慢日志的命令:
slowlog get [n]其中n表明要查看多少条慢日志。
一条慢日志通常都会有前4个属性,到了redis4.0以上版本出现了后面两个属性。
查看慢日志的条数:
slowlog len
慢日志重置:slowlog reset
慢查询可以有效帮助我慢找到redis的问题,但在实际使用中有几个建议:
今天就到这里,有时间我会再介绍其余实用的小功能。