慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我们了解一下Redis命令执行的整个过程
在慢查询的定义中,统计比较慢的时间段指的是命令执行这个步骤。没有慢查询,并不表示客户端没有超时问题,有可能网络传输有延迟,也有可能排队的命令比较多。
因为Redis中命令执行的排队机制,慢查询会导致其他命令的级联阻塞,所以当客户端出现请求超时的时候,需要检查该时间点是否有慢查询,从而分析出由于慢查询导致的命令级联阻塞。
在Redis中有两种修改配置的方法,一种是修改配置文件,另一种是使用config set命令动态修改
//这里使用config set //slowlog-log-slower-than默认是10000, config set slowlog-log-slower-than 20000 //slowlog-max-len默认是128,指定服务器最多保存多少条慢查询日志 config set slowlog-max-len 1000 //对启动 Redis 服务器时所指定的 redis.conf 文件进行改写 config rewrite
//查看当前慢查询记录有多少条 SLOWLOG len //列出当前所有慢查询 SLOWLOG get //列出慢查询的前3条 SLOWLOG get 3