redis的慢查询日志功能用于记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来监视和优化查询速度。配置文件中的两个选项
1. slowlog-log-slower-than指定执行时间超过多少微妙的命令请求会被记录到日志上
2. slowlog-max-len 选项指定服务器最多保存多少条慢查询日志
在redis服务器状态中包含了这几个和慢查询日志功能有关的属性
-
struct redisServer{
-
//...
-
// 下一条慢查询日志的id
-
long loong slowlog_entry_id;
-
// 保存了所有慢查询日志的链表
-
list *slowlog;
-
long long slowlog_log_slower_than;
-
unsigned long slowlog_max_len;
-
};
其中慢查询日志链表当中元素的结构如下
-
typedef struct slowlogEntry {
-
robj **argv;
-
int argc;
-
long long id; /* Unique entry identifier. */
-
long long duration; /* Time spent by the query, in microseconds. */
-
time_t time; /* Unix time at which the query was executed. */
-
sds cname; /* Client name. */
-
sds peerid; /* Client network address. */
-
} slowlogEntry;
redis在执行命令前后都会记录时间戳,根据对应的选项来决定是否插入链表当中
阅读(5116) | 评论(0) | 转发(0) |