Redis慢查询和slowlog

Redis命令执行步骤

  1. 发送命令
  2. 命令排队
  3. 命令执行
  4. 返回结果

慢查询只统计步骤3命令执行的时间,所以没有慢查询并不代表客户端没有超时问题。

配置项

  • slowlog-log-slower-than代表一条命令执行超过多少微秒就会记录为慢查询,默认为10000
  • slowlog-max-len代表慢查询日志最多存储多少条,默认为128,超出后,先记录的会被顶掉

相关命令

  • slowlog get [n]:获取当前记录的慢查询,参数n可以指定条数,每条返回值包括4部分,日志唯一id、执行时间戳、执行时间(单位微秒)、命令和参数
  • slowlog len:获取慢查询日志的条数
  • slowlog reset:慢查询日志重置

配置建议

  • slowlog-max-len建议线上配置1000以上,降低慢查询被剔除的可能
  • slowlog-log-slower-than在高并发场景建议设置为1毫秒,也就是1000
  • 当客户端出现请求超时,需要检查该时间点是否有定影的慢查询,从而分析出是否为慢查询导致的命令级联阻塞
  • 可以定期执行slow get命令将慢查询日志持久化到MySQL中(开源工具:https://github.com/sohutv/cachecloud

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章