Redis设计与实现(五)——慢查询日志、监视器

慢查询日志

Redis的慢查询日志用来记录执行时间超过给点时长的命令请求,用户可以通过这个功能生产的日志来监视和优化查询速度。

服务器配置有两个慢查询日志相关的选项:

  • slowlog-log-slower-than:规定执行时间超过多少微妙的命令会被记录到日志上。
  • slowlog-max-len:执行服务器上可以保存多少条慢查询日志。

慢查询记录的保存

通过一个链表来保存所有慢查询日志,在每条日志当中,还会保存命令执行的详细信息,包括:

  • id
  • 命令执行的时间戳
  • 命令消耗的时间
  • 命令与命令参数
  • 命令与命令参数的数量

慢查询日志的阅览和删除

利用命令SLOWLOG GET可以查询某条日志,SLOWLOG RESET可以删除命令,它们的底层通过遍历慢查询日志的链表就能实现。

添加新的日志

添加日志是服务器自动执行的,新的慢查询日志会被添加到链表头部,如果超出保存的数量上限,那么就会从链表末尾删除日志。

监视器

客户端执行MONITOR命令之后,自己就会变成一个监视器,实时接收并大于服务器当前处理的命令请求的相关信息。

客户端发送MONITOR命令之后,服务器上就会将该客户端添加到监视器链表中,之后服务器将会把处理的信息发送到链表中所有的客户端。

原文地址:https://www.cnblogs.com/lippon/p/14171305.html