[PSR-1 基础编码规范](PSR%E8%A7%84%E8%8C%83/PSR-1%E5%9F%BA%E7%A1%80%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83.md)
[PSR-3 日志接口规范](PSR%E8%A7%84%E8%8C%83/PSR-3%E6%97%A5%E5%BF%97%E6%8E%A5%E5%8F%A3%E8%A7%84%E8%8C%83.md)
[PSR-4 自动加载规范](PSR%E8%A7%84%E8%8C%83/PSR-4%E8%87%AA%E5%8A%A8%E5%8A%A0%E8%BD%BD%E8%A7%84%E8%8C%83.md)
[PSR-6 缓存接口规范](PSR%E8%A7%84%E8%8C%83/PSR-6%E7%BC%93%E5%AD%98%E6%8E%A5%E5%8F%A3%E8%A7%84%E8%8C%83.md)
[PSR-7 HTTP 消息接口规范](PSR%E8%A7%84%E8%8C%83/PSR-7HTTP%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E8%A7%84%E8%8C%83.md)
[PSR-11 容器接口](PSR%E8%A7%84%E8%8C%83/PSR-11%E5%AE%B9%E5%99%A8%E6%8E%A5%E5%8F%A3.md)
[PSR-12 编码规范扩充](PSR%E8%A7%84%E8%8C%83/PSR-12%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83%E6%89%A9%E5%85%85.md)
[PSR-13 超媒体链接](PSR%E8%A7%84%E8%8C%83/PSR-13%E8%B6%85%E5%AA%92%E4%BD%93%E9%93%BE%E6%8E%A5.md)
[PSR-14 事件分发器](PSR%E8%A7%84%E8%8C%83/PSR-14%E4%BA%8B%E4%BB%B6%E5%88%86%E5%8F%91%E5%99%A8.md)
[PSR-15 HTTP 请求处理器](PSR%E8%A7%84%E8%8C%83/PSR-15HTTP%E8%AF%B7%E6%B1%82%E5%A4%84%E7%90%86%E5%99%A8.md)
[PSR-16 缓存接口](PSR%E8%A7%84%E8%8C%83/PSR-16%E7%BC%93%E5%AD%98%E6%8E%A5%E5%8F%A3.md)
[PSR-17 HTTP 工厂](PSR%E8%A7%84%E8%8C%83/PSR-17HTTP%E5%B7%A5%E5%8E%82.md)
[PSR-18 HTTP 客户端](PSR%E8%A7%84%E8%8C%83/PSR-18HTTP%E5%AE%A2%E6%88%B7%E7%AB%AF.md)
- 空白目录
- PHP
- 基础
- 数据类型
- PHP8JIT
- 常用函数
- 语法结构
- 数组
- 字符串
- 类与对象
- 变量
- 常量
- 表达式
- 运算符
- 流程控制
- 函数
- 类与对象
- 命名空间
- PHP7 新特性
- PHP8新特性
- 进阶
- 错误处理
- 异常处理
- 生成器
- 注解
- 引用
- 预定义异常
- 预定义接口
- 上下文
- 高级
- 垃圾回收机制
- PHP内存管理
- 文件并发锁
- PHP的生命周期
- FPM
- 常驻内存
- 协程
- SPL
- PHP底层扩展
- 框架核心概念
- 服务容器(IOC)
- 路由设计
- 中间件
- 常住内存
- 命令行模式
- 缓存设计
- 日志设计
- 异常处理
- AOP
- 数据库模型设计
- 门面(Facde)
- 实践
- 从零开始编译PHP环境
- Composer
- 设计模式
- 设计原则
- 常用设计模式
- 创建型
- 静态工厂模式(Static Factory)
- 简单工厂模式(Simple Factory)
- 单例模式(Singleton)
- 对象池模式(Pool)
- 抽象工厂模式(Abstract Factory)
- 工厂方法模式(Factory Method)
- 多例模式(Multiton)
- 结构型
- 适配器模式(Adapter)
- 数据映射模式(Data Mapper)
- 装饰模式(Decorator)
- 依赖注入模式(Dependency Injection)
- 门面模式(Facade)
- 流接口模式(Fluent Interface)
- 代理模式(Proxy)
- 注册模式(Registry)
- 行为型
- 责任链模式(Chain Of Responsibilities)
- 命令行模式(Command)
- 迭代器模式(Iterator)
- 空对象模式(Null Object)
- 观察者模式(Observer)
- 策略模式(Strategy)
- 模板方法模式(Template Method)
- 访问者模式(Visitor)
- 资源库模式(Repository)
- 实体属性值模式(EAV 模式)
- DDD(领域驱动设计)
- 业务中台
- 工程架构
- 康威定律
- PSR规范
- PSR-1 基础编码规范
- PSR-3 日志接口规范
- PSR-4 自动加载规范
- PSR-6 缓存接口规范
- PSR-7 HTTP 消息接口规范
- PSR-11 容器接口
- PSR-12 编码规范扩充
- PSR-13 超媒体链接
- PSR-14 事件分发器
- PSR-15 HTTP 请求处理器
- PSR-16 缓存接口
- PSR-17 HTTP 工厂
- PSR-18 HTTP 客户端
- Restful
- resetful 思想与概念
- 规范标准
- Linux
- 定时器
- 进程管理
- 用户管理
- 文件管理
- 系统管理
- 网络管理
- Shell
- 变量
- 传递参数
- 数组
- 运算符
- echo 命令
- printf命令
- test命令
- 流程控制
- 函数
- 输入输出重定向
- shell文件包含
- 进程间通信
- 信号 signal
- 管道 pipe
- 共享内存 shared memory
- 先入先出队列 FIFO
- 消息队列 Message Queue
- 套接字 Socket
- Linux 中进程管理系统调用
- Linux 进程和线程的实现
- Linux 进程
- Linux 线程
- Linux 调度
- Linux 启动
- Mysql
- 字段存储类型与选择
- 模式
- 索引
- 索引类型及索引数据结构
- 独立的列
- 前缀索引和索引选择性
- 多列索引
- 选择合适的索引列顺序
- 聚簇索引
- 覆盖索引
- 使用索引扫描做排序
- 压缩(前缀压缩)索引
- 冗余和重复索引
- 未使用的索引
- 索引和锁
- 索引案例
- 支持多种过滤条件
- 避免多个范围条件
- 优化排序
- 维护索引和表
- 找到并修复损坏的表
- 更新索引统计信息
- 减少索引和数据的碎片
- 事务与锁
- 共享锁
- 排它锁
- 意向共享锁
- 意向排它锁
- 悲观锁
- 乐观锁
- 事务级别
- 多版本并发控制(MVVC)
- 死锁
- 死锁的检测以及规避
- 分布式锁
- 分布式事务
- 事务补偿
- 基准测试
- 测试指标
- 测试方法
- 测试工具
- 集成式测试工具
- 单组件式测试工具
- 查询性能优化
- 为什么查询速度会慢
- 慢查询基础:优化数据访问
- 重构查询的方式
- 一个复杂查询还是多个简单查询
- 切分查询
- 分解关联查询
- 查询执行基础
- Mysql 客户端/服务器通信协议
- 查询缓存
- 查询优化处理
- 查询执行引擎
- 返回结果给客户端
- 查询优化器的局限性
- 关联子查询
- UNION的限制
- 索引合并优化
- 等值传递
- 并行执行
- 哈希关联
- 松散索引扫描
- 最大值和最小值
- 在同一个表上的查询和更新
- 查询优化器的提示
- 优化特定类型查询
- 优化COUNT查询
- 优化关联查询
- 优化子查询
- 优化GROUP BY 查询 和 DISTINCT
- 优化 LIMIT 分页
- 优化SQL_CALC_FOUND_ROWS
- 优化UNION查询
- 静态查询分析
- 使用用户自定义变量
- 案例
- 使用Mysql构建一个队列表
- 计算两点之间的距离
- 使用用户自定义函数
- Mysql服务器优化
- 配置内存使用
- Mysql可以使用多少内存
- 每个连接需要的内存
- 为操作系统保留内存
- 为缓存分配内存
- InnoDB缓冲池(Buffer Pool)
- 线程缓存
- 数据字典
- InnoDB IO配置
- InnoDB 并发配置
- 基于工作负载的配置
- 优化BLOB和TEXT场景
- 优化排序
- 基本配置
- 安全和稳定的配置
- 高级InnoDB配置
- 复制
- 复制配置
- 复制的原理
- 复制拓扑
- 复制和容量规划
- 复制管理和维护
- 复制的问题和解决方案
- 复制有多快
- Mysql复制的高级特性
- 其他复制技术
- 高可用
- 导致宕机的原因
- 如何实现高可用
- 避免单点失效
- 故障转移和故障恢复
- 备份与恢复
- 定义恢复需求
- 设计Mysql备份方案
- 管理和备份二进制文件
- 备份数据
- 从备份中恢复
- 备份和恢复工具
- 备份脚本化
- 可扩展
- 什么是可扩展性
- 扩展Mysql
- 负载均衡
- Mysql Sql执行生命周期
- 分库分表
- 拆分方案
- 拆分思想
- 解决方案
- 一致性hash
- 全文索引
- 查询缓存
- Mysql集群配置
- 索引规约
- 建表规约
- Sql语句
- 附录:EXPLAN
- 附录: 锁的调试
- Redis
- 应用场景
- 数据类型
- 配置文件
- 发布和订阅
- 持久化RDB
- 持久化AOF
- 哨兵与集群
- 实现阻塞队列
- redis跳跃表
- geo hash
- bitmap实战
- NIO模型
- 底层设计原理
- 实战
- 秒杀
- 排行榜
- 抽奖
- 推荐
- 常用策略
- 四叉树和前缀树空间索引加速
- 缓存淘汰与键过期策略
- 布隆过滤器
- CAP定理
- AKF划分原则
- 基于zookeeper分布式锁
- 常见问题
- 缓存击穿
- 缓存雪崩
- 缓存穿透
- 超卖
- 锁失效及Redlock
- 二进制安全
- 分布式锁可重入问题
- 如何提示分布式锁性能
- 分布式
- 分布式、集群、微服务的区别
- 负载均衡策略
- 分布式ID
- 数据库自增ID
- 号段模式
- 滴滴Tinyid生成分布式ID
- 雪花算法
- 分布式事务
- 分布式事务框架seata
- 二次提交、三次提交
- TCC
- 分布式事务有哪些解决方案
- CAP
- Base
- quorum机制
- waro机制
- zab协议
- 解决方案
- raft算法
- paxos算法
- 数据一致性模型
- 分布式锁
- 微服务
- 微服务优缺点
- RPC通信协议
- 如何建模服务
- 部署
- 把持续集成映射到微服务
- 构建流水线和持续交付
- 平台特定的构建物
- 操作系统构建物
- 定制化镜像
- 环境
- 服务配置
- 服务与主机之间的映射
- 自动化
- 一个部署接口
- 测试
- 测试类型
- 测试范围
- 实现服务测试
- 微妙的端到端测试
- 端到端测试的缺点
- 脆弱的测试
- 测试场景而不是事故
- 部署后再测试
- 跨功能测试
- 康威定律
- 规模化微服务
- 安全
- 服务监控
- 微服务的原则
- 什么时候不该使用微服务
- 实战
- 服务治理
- 服务发现
- 服务调用链路追踪
- 服务熔断及降级
- 服务限流
- 令牌桶算法
- 服务重试
- 服务监控
- 注册中心
- GRPC通信协议
- JSON RPC
- 多路复用RPC
- 配置中心
- Snowflake
- Nginx
- Nginx主配置文件核心参数
- Nginx子配置文件
- Nginx处理用户请求的流程
- Nginx Location配置
- Nginx配置反向代理
- Nginx部署HTTPS
- Nginx配置负载均衡及算法
- Nginx配置静态资源缓存
- Docker
- 镜像管理
- 容器管理
- 数据卷
- Dockerfile
- Dockerfile 定制镜像
- Machine
- Compose
- Swarm
- 网络配置
- 日志管理
- 其他
- Docker部署微服务
- 整合IDE
- 整合持续集成
- 为镜像添加ssh服务
- Git
- 仓库
- 配置
- 增加/删除文件
- 代码提交
- 分支
- 标签
- 查看信息
- 远程同步
- 撤销
- 其他
- 解决冲突
- Phpunit
- 持续集成与交付 jenkins
- 整合IDE
- 配置GIT
- 持续集成
- 自动测试
- 自动发布
- 自动部署
- 回滚
- 压测工具
- LoadRunner
- Apache JMeter
- Apache benchmark(Ab)
- TCP/IP
- TCP/IP参考模型
- TCP/IP五层参考模型
- HTTP头部保存了哪些信息
- Keep-Alive 和非 Keep-Alive 区别
- HTTP 长连接短连接使用场景是什么
- HTTP 方法
- GET 和 POST 的区别
- GET 的长度限制
- HTTP 与 HTTPs 的工作方式
- HTTPS 和 HTTP 的区别
- HTTP 是不保存状态的协议,如何保存用户状态
- 状态码
- socket() 套接字有哪些
- URI和 URL
- 三次握手和四次挥手机制
- 如果三次握手的时候每次握手信息对方没有收到会怎么样
- 为什么要进行三次握手?两次握手可以吗?
- 第 2 次握手传回了 ACK,为什么还要传回 SYN
- 为什么要四次挥手?
- CLOSE-WAIT 和 TIME-WAIT 的状态和意义
- TIME-WAIT 为什么是 2MSL
- TCP 和 UDP 的区别
- TCP 是如何保证可靠性的
- TCP 流量控制与拥塞控制
- 如果接收方滑动窗口满了,发送方会怎么做
- 路由器和交换机的区别
- ARP 地址解析协议的原理和地址解析过程
- 运输层协议和网络层协议的区别
- MAC 地址和 IP 地址分别有什么作用
- 为什么有了 MAC 地址还需要 IP 地址
- 消息队列
- 消息队列原理
- RabbitMq
- 基础用法
- ack comfirm机制
- 确保百分百发送成功
- 幂等性
- return机制
- 限流机制
- 重回队列
- 死信队列
- TTL
- Zookeeper
- ElasticSearch
- Kubernetes
- 数据结构
- 字符串
- 数组
- 树
- 图
- 线性表
- 散列表
- 栈和队列
- 串
- 广义表
- 算法
- 经典排序
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 快速排序
- 堆排序
- 归并排序
- 计数排序
- 基数排序
- 桶排序
- 初级算法
- 数组
- 删除排序数组中的重复项
- 买卖股票的最佳时机 II
- 旋转数组
- 存在重复元素
- 只出现一次的数字
- 两个数组的交集 II
- 加一
- 移动零
- 两数之和
- 有效的数独
- 旋转图像
- 字符串
- 反转字符串
- 整数反转
- 字符串中的第一个唯一字符
- 有效的字母异位词
- 验证回文串
- 字符串转换整数 (atoi)
- 实现 strStr()
- 外观数列
- 最长公共前缀
- 链表
- 删除链表中的节点
- 删除链表的倒数第N个节点
- 反转链表
- 合并两个有序链表
- 回文链表
- 环形链表
- 树
- 二叉树的最大深度
- 验证二叉搜索树
- 对称二叉树
- 二叉树的层序遍历
- 将有序数组转换为二叉搜索树
- 排序和搜索
- 合并两个有序数组
- 第一个错误的版本
- 动态规划
- 爬楼梯
- 买卖股票的最佳时机
- 最大子序和
- 打家劫舍
- 设计问题
- 打乱数组
- 最小栈
- 数学
- Fizz Buzz
- 计数质数
- 3的幂
- 罗马数字转整数
- 其他
- 位1的个数
- 汉明距离
- 颠倒二进制位
- 杨辉三角
- 有效的括号
- 缺失数字
- Swoole
- Swoole生命周期
- Dubbo
- 多级缓存架构
- 正则表达式
- PHP 正则表达式(PCRE)
- 语法
- 修饰符
- 元字符
- 运算符优先级
- 匹配规则
- 案例
- Web安全
- 实战
- 目标及业务
- 设计模块
- 项目章程