什么是慢查询
和 mysql 的慢 SQL 日志分析一样,redis 也有类似的功能,来帮助定位一些慢查询操作。
Redis slowlog 是 Redis 用来记录查询执行时间的日志系统。
查询执行时间指的是不包括像客户端相应(talking)、发送回复等 IO 操作,而单单是执行一个查询命令所耗费的时间。
另外,slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。
慢查询参数
首先来关注一下慢日志分析对应的两个参数:
1、slowlog-log-slower-than:预设阀值,即记录超过多少时间的记录,默认为 10000 微妙,即 10 毫秒。
2、slowlog-max-len:记录慢查询的条数,默认为 128 条,当超过设置的条数时最早进入队列的将被移除。线上建议增大数值,如:1000,这样可减少队列移除的频率。
可以用 config set 对这两个参数进行调整,或者在配置文件中设置。
慢查询命令
语法:slowlog subcommand [argument]
如,进行查询慢查询、获取慢查询记录的数量、重置慢查询日志等操作: