redis提供慢查询功能,记录执行时间超过阙值的的命令。
redis请求的生命周期
- 客户端发送命令给服务器。
- 服务器接收命令后,会保存到执行队列中
- redis服务器从执行队列中,取除命令执行
- 执行完成后会将结果返回给客户端
注意: 慢查询指的是执行命令的时间过长。客户端的响应时间长,不一定是命令执行时间长,有可能是网络延时,在执行队列中前面的命令执行时间过超过导致的。
慢查询配置
- slowlog-max-len 慢查询队列长度
redis 是通过一个先进先出的队列保存慢查询记录,如果队列满了,前面的记录会被丢弃。队列是储存在内存中的,重启redis后会清空记录。一般设置成1000。 - slowlog-log-slower-than 设置慢查询阙值
超过指定的执行时间后会被标记为慢查询,0表示记录所有查询,单位是微妙,一帮设置为1毫秒。
慢查询相关命令
命令 | 说明 |
---|---|
slow get n | 获取 n条慢查询记录 |
slow reset | 清空慢查询记录 |
slow len | 获取慢查询记录数 |
运维建议
- 定期持久化慢查询记录到mysql