redis学习 慢查询

慢查询:

(1)生命周期:客户端向服务器发送命令,由于redis服务器是单线程的,所以在大量命令执行时,命令会排队,从而串行执行,

轮到该命令执行的时候,可能出现慢查询,查询结果之后,返回结果给客户端。慢查询发生在命令执行阶段,客户端超时不一定就是慢查询引起的,但是其中的一个因素。

(2)慢查询配置:

慢查询是一个先进先出队列,当一个命令被认为是一个慢查询时,就会被列入队列中。

队列是一个先进先出队列,并且有固定的长度,且保存在内存中,redis的慢查询队列是由redis本身的list数据结构来实现的。

slowlog-max-len:配置队列的长度

slowlog-log-slower-than:查询时间为多少秒命令被记录

客户端执行以下命令获得慢查询的配置

redis-cli :

config get slowlog-max-len

config get slowlog-log-slower-than

执行以下命令来设置慢查询

config set slowlog-max-len

confog set slowlog-log-slower-than

(3)慢查询相关的命令:

slowlog get n 获取几条慢查询

slowlog len 获取慢查询的长度

slowlog reset 清空慢查询

运维经验:

slowlog -max-len 默认为10ms 通常为1ms

slowlog-log-slower-than 通常1000

要理解命令的声明周期

定期的持久化慢查询,因为慢查询是在内存中,并且慢查询队列是一个先进先出的定长队列

猜你喜欢

转载自blog.csdn.net/qq_32182461/article/details/82413813