温故而知新
1. 计算机基础
1.1.1. 进程线程协程
1.1.2. 统计当天Nginx日志最慢的10个接口/PV/UV(cat,sed,awk,uniq,sort,wc,head)
1.1.3. Linux文件统计相关命令
2. 网络基础
2.1.1. 7层网络协议
2.1.2. http三次握手四次挥手
2.1.3. https,http与https的区别
2.1.4. 抓包(tcpdump) + 分析(wireshark)
2.1.5. IO多路复用,select,poll,epoll
2.1.6. http与rpc的区别
3. 设计模式
3.1.1. 单例模式
3.1.2. 工厂模式
3.1.3. 观察者模式
3.1.4. 责任链模式(各种框架的中间件middletier)
3.1.5. 适配器模式 (mysql,pgsql的model)
3.1.6. 等等其他主流模式
3.1.7. DDD:领域驱动设计
4. PHP
4.1.1. php-fpm
4.1.2. 魔术方法
4.1.3. 垃圾回收
4.1.4. 依赖注入
4.1.5. yield生成器(迭代器)
4.1.6. interface, abstract
4.1.7. trait
5. Nginx
5.1.1. 错误状态码
6. Composer
6.1.1. 自动加载原理
6.1.2. 自动加载类命令
6.1.3. spl_autoload_register
6.1.4. composer.json解析
7. Swoole
7.1.1. TCP数据包边界问题
7.1.2. 协程原理
7.1.3. 什么是 EventLoop
7.1.4. IPC通信问题与选择
8. Hyperf
8.1.1. 依赖注入
8.1.2. 注解
8.1.3. AOP
- 简单来说 切面就是 方法运行的前后执行的操作(利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。)
- 启动时,根据AOP生成代理类.
- blog.csdn.net/hedeqiang94…
- channel-通道,WaitGroup,Parallel
9. Laravel
9.1.1. 依赖注入
9.1.2. IOC容器实现原理(控制反转,反射,解耦,单例)
10. MYSQL
10.1.1. innodb与myisam索引的区别
10.1.2. 联合索引失效的场景
10.1.3. 锁有哪些,怎么避免死锁
10.1.4. 并发版本控制MVVC
10.1.5. binlog
10.1.6. redolog
10.1.7. undolog
10.1.8. 索引
10.1.9. explain
10.1.10. 监控
10.1.11. 正在执行一条update语句的时候,mysql服务突然宕机了,这条语句执行成功了吗(两阶段提交,buffer pool,redolog,binlog)
11. Redis
11.1.1. 数据结构
11.1.2. set nx 用来做防重复请求时, 怎么保证过期时间 (续时策略)
12. 消息中间件
12.1. 综合提问
12.1.1. 生产丢失和消费慢问题
12.2. Kafka
12.2.1. 基础知识/面试题
12.2.2. kafka为什么这么快
12.3. RabbitMQ
12.4. RocketMQ
13. 秒杀系统设计
13.1.1. 整体设计
13.1.2. redis预库存如何与数据表库存保持一致
14. Golang
14.1.1. 基础知识点
14.1.2. 垃圾回收
14.1.3. GMP模型
14.1.4. sync.mutex
15. ElasticSearch
16. 容器化
16.1. K8s
16.1.1. k8s操作常用的一些命令,kubectl...
16.2. Docker