Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1837902
  • 博文数量: 184
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2388
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-21 22:26
个人简介

90后空巢老码农

文章分类

全部博文(184)

文章存档

2021年(26)

2020年(56)

2019年(54)

2018年(47)

2017年(1)

我的朋友

分类: NOSQL

2019-11-17 19:09:27

redis的慢查询日志功能用于记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来监视和优化查询速度。配置文件中的两个选项
1. slowlog-log-slower-than指定执行时间超过多少微妙的命令请求会被记录到日志上
2. slowlog-max-len 选项指定服务器最多保存多少条慢查询日志
在redis服务器状态中包含了这几个和慢查询日志功能有关的属性

点击(此处)折叠或打开

  1. struct redisServer{
  2.     //...
  3.     // 下一条慢查询日志的id
  4.     long loong slowlog_entry_id;
  5.     // 保存了所有慢查询日志的链表
  6.     list *slowlog;
  7.     long long slowlog_log_slower_than;
  8.     unsigned long slowlog_max_len;
  9. };
其中慢查询日志链表当中元素的结构如下

点击(此处)折叠或打开

  1. typedef struct slowlogEntry {
  2.     robj **argv;
  3.     int argc;
  4.     long long id; /* Unique entry identifier. */
  5.     long long duration; /* Time spent by the query, in microseconds. */
  6.     time_t time; /* Unix time at which the query was executed. */
  7.     sds cname; /* Client name. */
  8.     sds peerid; /* Client network address. */
  9. } slowlogEntry;
redis在执行命令前后都会记录时间戳,根据对应的选项来决定是否插入链表当中
阅读(5059) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~