- slowlog-log-slower-than选项:指定执行时间超过多少微秒(1秒等于1000 000微秒)的命令请求会被记录到日志上
举个例子,如果这个选项的值为100,那么执行时间超过100微秒的命令就会被记录到慢 查询日志
如果这个选项的值为500,那么执行时间超过500微秒的命令就会被记录到慢查询日志
- slowlog-max-len选项:指定服务器最多保存多少条慢查询日志
慢查询日志的数量溢出
- 服务器使用先进先出的方式保存多条慢查询日志,当服务器存储的慢查询日志数量等于slowlog-max-len选项的值时,服务器在添加一条新的慢查询日志之前,会先将最旧的一条慢查询日志删除
慢查询日志的格式
- 以下面的图片为例:
1)日志的唯一标识符
2)命令执行时的UNIX时间戳
3)命令执行的时常(单位微秒)
4)命令以及命令参数
5)命令执行的客户端IP与端口
SLOWLOG命令
SLOWLOG GET:用来查看服务器所保存的慢查询日志
SLOWLOG RESET:用于清空所有慢查询日志
SLOWLOG LEN:查询慢查询日志的数量
慢查询日志命令的实现
- 底层分装着一个slowlog链表, 保存了服务器中的所有慢查询日志,链表中的每个节点都保存了一个 slowlogEntry结构,每个slowlogEntry结构代表一条慢查询日志
typedef struct slowlogEntry {
//唯一标识符
long long id;
//命令执行时的时间,格式为UNIX 时间戳
time_t time;
//执行命令消耗的时间,以微秒为单位
long long duration;
//命令与命令参数
robj **argv;
//命令与命令参数的数量
int argc;
} slowlogEntry;
- 通过执行MONITOR命令,客户端可以将自己变为一个监视器,实时地接收并打印出服务器当前处理的命令请求的相关信息
- 当一个客户端变为监视器之后, 每当其他一个客户端向服务器发送一条命令请求时,服务器除了会处理这条命令请求之外, 还会将关于这条命令请求的信息发送给所有监视器,如下图所示:
监视器实现原理
- 发送MONITOR命令可以让一个普通客户端变为一个监视器, MONITOR命令的实现原理可以用 以下伪代码来实现:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/1b87563f6d5f7c34a6e0453121f2a75e.jpeg)
最后
分享一些系统的面试题,大家可以拿去刷一刷,准备面试涨薪。
这些面试题相对应的技术点:
- JVM
- MySQL
- Mybatis
- MongoDB
- Redis
- Spring
- Spring boot
- Spring cloud
- Kafka
- RabbitMQ
- Nginx
- …
大类就是:
- Java基础
- 数据结构与算法
- 并发编程
- 数据库
- 设计模式
- 微服务
- 消息中间件
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
(img-PE6PucwN-1713276794703)]
[外链图片转存中…(img-KqiP8L6O-1713276794704)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!