一个客户端请求Redis的完整周期可以分成四个阶段:
因为Redis是单线程的,所以我们这里将其想象为一个队列,在未执行前都是在排队的
慢查询:
慢查询一般发生在第三阶段,慢是指命令被执行消耗的时间,就是在第三阶段消耗的时间,与前阶段没有关系。
慢查询的两个配置-slow-max-len:
也就是说一旦被redis视为慢查询会经历下面的操作
1.进入先进先出队列(慢查询保存在内存中,断电即消失)
配置方法:
1.默认值:
config get slowlog-max-len =128
config get slowlog-log-slower-than=10000 微妙
慢查询API:
slowlog get [n]:获取慢查询队列,n是几就获取几条
slowlog len:获取慢查询队列长度
slowlog reset:清空慢查询队列
运维经验:
slowlog-max-len通常1ms(时间长了会影响ops)
slowlog-log-slower-than队列设置在1000左右
充分理解生命周期
定期持久化慢查询