一个php技术栈后端猿的知识储备大纲
为什么把php,mysql,redis放在前三位?因为php/mysql/redis基础是一个当代phper的根基。
状态 | 含义 |
---|---|
not-start | 当前未开始总结 |
doing | 总结中 |
α | 目前仅供参考未修正和发布 |
done | 总结完毕 |
fixing | 查漏补缺修改中 |
-
PHP(doing)
-
Mysql(doing)
- 常用sql语句
- 引擎
- InnoDB
- MyISAM
- Memory
- Archive\Blackhole\CSV\Federated\merge\NDB
- 事务隔离级别
- READ UNCOMMITTED:未提交读
- READ COMMITTED:提交读/不可重复读
- REPEATABLE READ:可重复读(MYSQL默认事务隔离级别)
- SERIALIZEABLE:可串行化
- 索引
- B-Tree
- 哈希索引(hash index)
- 空间数据索引(R-Tree)
- 全文索引
- 锁
- 悲观锁
- 乐观锁
- 分表
- 垂直分表
- 水平分表
- sql优化
- 主从配置
-
Redis(doing)
-
设计模式(done/fixing)
-
- 数组
- 堆/栈
- 树
- 队列
- 链表
- 图
- 散列表
-
算法(doing)
-
网络基础(doing)
- 互联网协议概述
- client和nginx简易交互过程
- nginx和php-fpm简易交互过程
- http
- 报文
- 报文头部
- 报文体
- 常见13种状态码
- 方法method
- https
- http2
- websocket
- 报文
-
计算机基础(doing)
- linux常用命令
- shell
-
高并发相关(not-start)
运行脚本: php patterns/[文件夹名称]/test.php
例如,
测试责任链模式: 运行 php patterns/chainOfResponsibility/test.php
运行结果:
请求5850c8354b298: 令牌校验通过~
请求5850c8354b298: 请求频率校验通过~
请求5850c8354b298: 参数校验通过~
请求5850c8354b298: 签名校验通过~
请求5850c8354b298: 权限校验通过~
运行脚本: php algorithm/test.php [算法名称|空获取列表]
例如,
测试冒泡排序: 运行 php algorithm/test.php bubble
运行结果:
==========================冒泡排序=========================
Array
(
[0] => 11
[1] => 67
[2] => 3
[3] => 121
[4] => 71
[5] => 6
[6] => 100
[7] => 45
[8] => 2
)
=========上为初始值==================下为排序后值=============
Array
(
[0] => 2
[1] => 3
[2] => 6
[3] => 11
[4] => 45
[5] => 67
[6] => 71
[7] => 100
[8] => 121
)
运行脚本: php redis/test.php [名称|空获取列表]
例如,
测试悲观锁: 运行 php redis/test.php p-lock
运行结果:
执行count加1操作~
count值为:1
如果大家发现有什么不对的地方,可以发起一个issue或者pull request,我会及时纠正,THX~
补充:发起pull request的commit message请参考文章Commit message编写指南
因为国外开发者的要求和个人的时间有限,征集大家有兴趣的可以把本项目进行英文版翻译。希望国外的developer也可以受益于这个项目~
翻译文件认领申请:TIGERB#36
感谢以下朋友的issue或pull request: