redis-慢日志查询

289 阅读1分钟

如果配置:

slowlog-log-slower-than = 1000000;单位微妙,执行时间超过多少微妙。 slowlog-max-len=100,最多存储多少条慢日志数据。 命令:使用使用config set 设置参数。

底层的数据结构及实现

struct redisServer{

// 最新一条慢日志的id,初始从0开始
long long slowlog_entry_id;

// 保存了所有慢查询日志的链表
list *slowlog;

// 执行时间超过多少微妙配置
long long slowlog_log_slower_than;

// 最多存储多少条慢日志数据配置
unsigned long slowlog_max_len;

}

slowlog链表中保存的slowlogEntry结构

typedef struct slowlogEntry{

//唯一标识符
long long id;

// 命令执行时的时间,格式未UNIX时间戳
time_t time;

// 执行命令消耗的时间,以微妙为单位
long long duration;

// 命令与命令参数
robj **argv;

// 命令与命令参数数量
int argc;

} slowlogEntry;

借用他人的截图完整的展示一下。

上图为redisServer结构示例

上图为slowlogEntry结构示例图