如果配置:
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结构示例图