八股文学习路线图

优先级图例

标记含义学习要求
🔴 重点高频必考,必须能徒手写 + 讲清原理优先吃透
🟡 进阶中频,能说清思路与权衡即可二轮复习
🟢 了解低频/加分项,知道概念不深究扫读即可

Top 20 高频知识点

排名知识点模块
1TCP 三次握手 / 四次挥手计网
2GIL 是什么、怎么绕过Python
3MVCC 原理MySQL
4B+ 树索引 + 最左前缀MySQL
5缓存穿透 / 击穿 / 雪崩Redis
6进程 vs 线程 vs 协程操作系统
7IO 多路复用 select/poll/epoll操作系统
8HTTP 版本演进 1.1→2→3计网
9HTTPS 工作原理 + TLS 握手计网
10索引失效的 5 大场景MySQL
11装饰器原理与手写Python
12asyncio 事件循环 + async/awaitPython
13从输入 URL 到页面展示计网
14缓存与数据库双写一致性Redis
15深浅拷贝的区别与实现Python
16死锁四条件与预防操作系统
17红黑树 / B+ 树应用场景数据结构
18零拷贝原理(sendfile/mmap)操作系统
19Cookie / Session / Token 认证三兄弟计网
20限流、熔断、降级三件套系统设计

TCP / UDP 基础

  • TCP 三次握手与四次挥手:状态流转、为什么是三次/四次、半连接队列 🔴 重点

  • TCP 可靠性机制:确认应答、超时重传、滑动窗口、流量控制、拥塞控制(慢启动/拥塞避免/快重传/快恢复)🔴 重点

  • TCP vs UDP:区别、适用场景、QUIC 如何绕开队头阻塞 🔴 重点

  • TIME_WAIT 的 2MSL 作用、粘包/拆包成因与解法 🟡 进阶

  • TCP 状态机、常见追问(同时打开/关闭、SYN Flood)🟢 了解

HTTP 协议

  • HTTP 状态码分类与高频码(301/302/304/401/403/404/500)🔴 重点

  • RESTful 语义:GET/POST/PUT/DELETE 的语义与幂等性 🔴 重点

  • HTTP 版本演进:1.0 → 1.1 → 2.0 → 3.0(QUIC) 的核心变化 🔴 重点

  • HTTPS 与 TLS 1.3 握手:对称/非对称加密、证书链、前向安全 🔴 重点

  • 从输入 URL 到页面展示:DNS → TCP → TLS → 渲染全链路 🔴 重点

  • HTTP/2 多路复用 vs HTTP/1.1 队头阻塞 🟡 进阶

  • 长连接 / 短连接 / 流水线 🟡 进阶

  • 强缓存与协商缓存(Cache-Control / ETag / 304)🟡 进阶

Web 安全与跨域

  • 同源策略、Cookie / Session / Token 认证三兄弟 🔴 重点

  • CORS 跨域:简单/预检请求、常见跨域解决方案(代理/JSONP/网关)🔴 重点

  • XSS / CSRF / SQL 注入的成因与防御 🔴 重点

  • 对称加密 vs 非对称加密、HTTPS 中的混合加密 🟡 进阶

  • WebSocket 全双工通信、SSE 服务器推送 🟢 了解

  • DNS 解析过程、CDN 原理与调度 🟢 了解


进程 / 线程 / 协程

  • 进程 vs 线程 vs 协程:资源、切换成本、适用场景 🔴 重点

  • 进程间通信 7 种方式:管道/消息队列/共享内存/信号量/套接字等 🟡 进阶

  • 线程同步与锁机制:互斥锁、读写锁、自旋锁、条件变量 🔴 重点

  • 进程调度算法:FCFS / 时间片轮转 / 多级反馈队列 🟡 进阶

内存管理

  • 虚拟地址到物理地址的翻译(分页/分段/段页式)🔴 重点

  • 页面置换算法:FIFO / LRU / Clock 🔴 重点

  • 缺页中断流程、请求分页 🟡 进阶

  • 局部性原理与抖动(Thrashing)成因 🟡 进阶

  • malloc 底层:brk 与 mmap 的分工 🟢 了解

IO 模型

  • 五种 IO 模型:阻塞 / 非阻塞 / IO 多路复用 / 信号驱动 / 异步 🔴 重点

  • IO 多路复用 select / poll / epoll 的区别与底层实现 🔴 重点

  • epoll 的 LT 与 ET 模式、就绪队列机制 🟡 进阶

  • 零拷贝:sendfile / mmap / splice 如何减少拷贝次数 🟡 进阶

内核与系统

  • 用户态与内核态:区别、切换成本、进入内核的三种方式(系统调用/中断/异常)🔴 重点

  • 中断、系统调用、上下文切换 🟡 进阶

  • eBPF 概念与可观测性应用 🟢 了解

  • 操作系统分类:批处理 / 分时 / 实时 / 分布式 🟢 了解


对象与内存

  • 可变对象 vs 不可变对象:int/str/tuple 与 list/dict 的内存差异 🔴 重点

  • is 与 == 的区别:身份 vs 值、小整数池 🔴 重点

  • 深浅拷贝:引用、浅拷贝、深拷贝的边界与手写实现 🔴 重点

函数与并发基础

  • 装饰器原理:闭包 + 函数对象 + 语法糖,能手写带参装饰器 🔴 重点

  • GIL 是什么、对 CPU/IO 密集型的影响、如何绕过(多进程/协程/C 扩展)🔴 重点

  • 迭代器与生成器:惰性求值、yield 状态挂起 🟡 进阶

  • 闭包:变量捕获、延迟绑定陷阱 🟡 进阶

  • 异常与上下文管理器(with)🟢 了解


一、Python 并发(八股向)

  • asyncio 核心:事件循环、Task、协程调度、await 的本质 🔴 重点

  • 生成器与协程的演进关系:从 yield 到 async/await 🟡 进阶

  • 线程 / 进程 / 线程池 / 进程池的选型 🟡 进阶

  • asyncio.to_thread 把阻塞调用 offload 到线程 🟢 了解


索引

  • B+ 树索引结构、为什么用 B+ 树而非 B 树/红黑树 🔴 重点

  • 最左前缀原则、联合索引、覆盖索引 🔴 重点

  • 索引失效的 5 大场景(隐式转换/函数/前导模糊/不等/or)🔴 重点

事务与锁

  • 事务 ACID 与隔离级别、MVCC 多版本并发控制 🔴 重点

  • 当前读 vs 快照读、Next-Key Lock 防幻读 🔴 重点

  • 死锁的成因、检测与预防 🟡 进阶

日志与高可用

  • redo log / undo log / binlog 的职责与两阶段提交 🟡 进阶

  • 主从复制、读写分离 🟢 了解

实战

  • SQL 优化套路:explain、慢查询定位 🟡 进阶

数据结构与缓存

  • 五大基础结构(String/Hash/List/Set/ZSet)与底层实现 🔴 重点

  • 缓存穿透 / 击穿 / 雪崩的成因与对策(布隆过滤器/互斥锁/随机过期)🔴 重点

  • 缓存与数据库双写一致性:先删后更、延迟双删、Canal 订阅 🔴 重点

持久化与分布式

  • RDB 与 AOF 的区别、混合持久化 🟡 进阶

  • 主从 / 哨兵 / 集群、数据分片 🟡 进阶

  • 分布式锁的 Redlock 争议与最佳实践 🟡 进阶

  • 内存淘汰策略(LRU/LFU)、大 key 与热 key 治理 🟢 了解


四、FastAPI / Web 八股

  • FastAPI 核心:异步视图、依赖注入、Pydantic 校验 🔴 重点

  • 认证与响应:JWT 签发校验、统一响应模型 🟡 进阶

  • 数据库集成:SQLAlchemy 异步会话、连接池 🟡 进阶

  • 性能与运维:生命周期、后台任务、限流 🟢 了解


五、设计模式

  • 单例模式:线程安全实现、懒加载 🔴 重点

  • 工厂模式 vs 策略模式:创建与行为的取舍 🟡 进阶

  • 观察者模式(发布-订阅):事件解耦 🟡 进阶

  • MVC 与 MTV 架构分层思想 🟢 了解


六、分布式与系统设计(八股向)

  • Docker 与 docker-compose:镜像分层、容器隔离 🟡 进阶

  • 微服务架构:服务拆分、注册发现、配置中心 🟡 进阶

  • Git 工作流:rebase / merge / stash / cherry-pick 的取舍 🟡 进阶

  • 限流(令牌桶/漏桶)、熔断、降级三件套 🔴 重点

  • 秒杀系统设计:库存扣减、防超卖、削峰 🟡 进阶

  • 分布式事务:2PC / TCC / 消息最终一致 🟡 进阶

  • CAP 与 BASE 理论:一致性与可用性的权衡 🟡 进阶

  • Kubernetes 核心资源(Pod/Service/Deployment)🟢 了解


学习顺序

  1. 计算机网络 + 操作系统(Top20 中 1/7/8/9/13/16/18 属此)。

  2. Python 基础与并发:GIL、装饰器、asyncio。

  3. MySQL + Redis:八股与项目共用。

  4. FastAPI + 设计模式 + 分布式系统设计。

  5. 冲刺:🔴 重点做口述 + 手撕,🟡 进阶做思路复述。

相关链接