Redis -- 慢查询

客户端请求到Redis的一个 生命周期

何为慢查询?

   系统在命令执行前后计算每条命令的执行时间,当超过预定阀值时,记录命令的发生时间,耗时,命令的详细信息等。

Redis客户端执行一条命令分为发送命令、命令排队、命令执行、返回结果。慢查询只统计命令执行,所以没有慢查询并不代表客户端没有超时问题。

生命周期:

1客户端发送命令

2.因为redis是单线程 所以命令要排队执行

3.执行命令,当命令被列为慢查询 会被放入一个队列

4.返回执行结果

注意:

1慢查询只发生在第三阶段;

2.客户端超时不一定是慢查询的原因,但慢查询是客户端超时的一个可能因素;

慢查询的两个配置- 

  1. slowlog-max-len

1)先进先出队列

2)固定长度

3)保存在内存内


     2. slowlog-log-slower-than

1)慢查询阈值(单位:微秒)

2)slowlog-log-slower-than=0,记录所有命令

3)slowlog-log-slower-than<0,不记录任何命令

_____________________________________________________________________________________________

参数配置

慢查询有两个参数需要配置:

[ ] slowlog-log-slower-than

表示慢查询预设的超时阀值,单位是微妙(μs)

1s = 1000ms = 1_000_000μs

默认10000微秒,即10毫秒

执行超过这个时间的命令将被记录到慢查询日志

slowlog-log-slower-than = 0:表示记录所有命令。

slowlog-log-slower-than < 0:表示不记录

[ ] slowlog-max-len

表示慢查询日志的条数

默认为 128

Redis使用列表存储慢查询日志

当已经记录了128条慢查询,现在又来一条,最早记录的那条将被踢出,最新一条入列

慢查询命令:

运维经验:

猜你喜欢

转载自blog.csdn.net/qq_29373285/article/details/84837357