慢查询日志
Redis的慢查询日志用来记录执行时间超过给点时长的命令请求,用户可以通过这个功能生产的日志来监视和优化查询速度。
服务器配置有两个慢查询日志相关的选项:
- slowlog-log-slower-than:规定执行时间超过多少微秒的命令会被记录到日志上。
- slowlog-max-len:执行服务器上可以保存多少条慢查询日志。
慢查询记录的保存
通过一个链表来保存所有慢查询日志,在每条日志当中,还会保存命令执行的详细信息,包括:
- id
- 命令执行的时间戳
- 命令消耗的时间
- 命令与命令参数
- 命令与命令参数的数量
慢查询日志的阅览和删除
利用命令SLOWLOG GET可以查询某条日志,SLOWLOG RESET可以删除命令,它们的底层通过遍历慢查询日志的链表就能实现。
添加新的日志
添加日志是服务器自动执行的,新的慢查询日志会被添加到链表头部,如果超出保存的数量上限,那么就会从链表末尾删除日志。
监视器
客户端执行MONITOR命令之后,自己就会变成一个监视器,实时接收并打印服务器当前处理的命令请求的相关信息。
客户端发送MONITOR命令之后,服务器上就会将该客户端添加到监视器链表中,之后服务器将会把处理的信息发送到链表中所有的客户端。