跟众多数据库的慢查询一样,平时不希望看到,但是数据库响应慢的时候,又希望能在慢查询中找到罪魁祸首。这一节内容,就来简单聊聊如何在 Redis 中找到慢查询。
Redis 可以记录执行时间超过某个阈值的命令,这个阈值由参数 slowlog-log-slower-than 控制,单位是微秒,默认值 10000。
参数 slowlog-max-len 可以控制保存慢日志的条数,Redis 底层是使用列表来存储慢查询日志,slowlog-max-len 就是列表的最大长度。当慢查询数达到该参数配置的值时,如果继续有新增的慢查询,则最早插入的慢查询会被删除。
可通过下面命令获取到所有慢查询:
127.0.0.1:6379> slowlog get
1) 1) (integer) 0
2) (integer) 1647236811
3) (integer) 30541
4) 1) "SLOWLOG"
2) "GEY"
5) "127.0.0.1:47252"
6) ""
慢日志中,每个结果都包含以下六个值,可与上面列子一一对应:
查看有多少慢查询:
127.0.0.1:6379> slowlog len
(integer) 1
获取其中一条慢查询:
127.0.0.1:6379> slowlog get 1
1) 1) (integer) 0
2) (integer) 1647236811
3) (integer) 30541
4) 1) "SLOWLOG"
2) "GEY"
5) "12
清空慢查询记录:
127.0.0.1:6379> slowlog reset
OK
Redis 慢查询注意点: