Redis九
1. Redis 慢查询
Redis 慢查询作用和 MySQL 慢查询作用类似,都是为我们查询出不合理的执行命令,然后让开发人员和运维人员一起来规避这些耗时的命令,从而让服务器更加高效和健康的运行。对于单线程的 Redis 来说,不合理的使用更是致命的,因此掌握 Redis 慢查询技能对我们来说非常的关键。
如何进行慢查询?
在开始之前,我们先要了解一下 Redis 中和慢查询相关的配置项,Redis 慢查询重要的配置项有以下两个:
-
slowlog-log-slower-than:用于设置慢查询的评定时间,也就是说超过此配置项的命令,将会被当成慢操作记录在慢查询日志中,它执行单位是微秒(1 秒等于 1000000 微秒);
-
slowlog-max-len:用来配置慢查询日志的最大记录数。
我们先来看它们的默认配置值:127.0.0.1:6379> config get slowlog-log-slower-than #慢查询判断时间 1) "slowlog-log-slower-than" 2) "10000" 127.0.0.1:6379> config get slowlog-max-len #慢查询最大记录条数 1) "slowlog-max-len" 2) "128"
可以看出慢查询的临界值是 10000 微秒,默认保存 128 条慢查询记录。
修改配置项
slowlog-log-slower-than 和 slowlog-max-len 可以通过 config set xxx 的模式来修改,例如 config set slowlog-max-len 200 设置慢查询最大记录数为 200 条。
慢查询演示
我们先来设置慢查询的判断时间为 0 微秒,这样所有的执行命令都会被记录
127.0.0.1:6379> config set slowlog-log-slower-than 0
OK
接下来我们执行两条插入命令
127.0.0.1:6379> set msg xiaoming
OK
127.0.0.1:6379> set lang java
OK
最后我们使用 slowlog show 来查询慢日志
获取慢查询队列长度
语法:slowlog len。
清空慢查询日志
使用 slowlog reset 来清空所有的慢查询日志
小结
慢查询相关的两个重要参数 slowlog-log-slower-than(用于设置慢查询的评定时间)和 slowlog-max-len 用来配置慢查询日志的最大记录数,然后通过修改 config set slowlog-log-slower-than 0 把所有操作都记录在慢日志进行相关测试。我们可以使用 slowlog get [n] 查询慢操作日志,使用 slowlog reset 清空慢查询日志。可以定期检查慢查询日志,及时发现和改进 Redis 运行中不合理的操作。