redis慢查询

redis慢查询

redis慢查询优化

redis是单线程,周期是发送命令->排队->执行命令->返回结果
redis的慢查询主要是指第三部执行命令。

获取慢查询配置信息
CONFIG GET slowlog-*

undefined

slowlog-log-slower-than 代表慢查询的阈值,单位为:微秒。当执行查询命令消耗时间大于配置的阈值时,会将该条命令记录到慢查询日志。当 slowlog-log-slower-than=0 时,记录所有命令。slowlog-log-slower-than<0 时,不记录任何命令。slowlog-log-slower-than 的默认值为 10000 (10毫秒,1秒 = 1,000毫秒 = 1,000,000微秒)。

slowlog-max-len 代表慢查询日志最大条数。它是一个队列形式的存储结构,先进先出的队列,即当慢查询日志达到最大条数后,会销毁最早记录的日志条目。slowlog-max-len 的默认值为 128,保存在内存内,所以重启 redis 会清空慢查询日志。

配置慢查询命令

slowlog-log-slower-than 和 slowlog-max-len的配置命令

CONFIG SET slowlog-log-slower-than 100
CONFIG SET slowlog-max-len 1024

其他命令

获取多少条队列
slowlog get num

获取慢查询的队列长度
slowlog len

undefined

其中所指向的1,2,3.4分别表示
1.唯一性(unique)的日志标识符
2.被记录命令的执行时间点,以 UNIX 时间戳格式表示
3.查询执行时间,以微秒为单位
4.执行的命令,以数组的形式排列