这门课在解决什么

很多 PHP 项目上线后,数据库成了瓶颈。一个高并发接口,每次都直查 MySQL,慢查询堆积,服务器扛不住。这门课不教你怎么写业务代码,它专门处理「数据读得太慢」这个问题。

课程从最基础的文件缓存开始——把查询结果写到文件里,下次直接读文件,跳过数据库。然后进阶到 Memcached 和 Redis 这两种内存数据库,处理更复杂的场景:用户登录状态、秒杀活动的库存扣减、分布式系统的 Session 共享。学完你能独立搭建一套完整的缓存方案,而不是只会写 `SELECT * FROM users`。

适合什么基础

你有 PHP 基础,知道怎么搭 LNMP 环境,用过 ThinkPHP 或类似框架。不需要懂分布式系统,课程会从 Ubuntu 环境搭建讲起。如果你完全没接触过缓存概念,前几章的文件缓存和 CDN 介绍会帮你建立直观理解。

建议先看哪几块

第1章是总览,18分钟讲清楚「为什么要缓存」「哪些环节能用缓存」。这是必看的,不然后面的内容会显得散。

第2章的文件缓存部分最实用。2-5 碎片化文件缓存、2-6 到 2-8 全页面静态化,这三个视频加起来约1小时,讲的是把动态页面变成静态 HTML 存到文件里。这是最简单也最有效的优化手段,建议优先看完。

第3章的 Memcached 和第4章的 Redis 可以对照着看。3-5 封装缓存类实现登录数据存储、4-5 List 类型实现秒杀功能,这两个案例分别展示了两种内存数据库的典型用法。先搞懂 Memcached 的基础原理(3-1 到 3-4),再看 Redis 的数据结构差异(4-3 到 4-6),理解会更清晰。

学完能独立做什么

你能独立设计并实现一个 PHP 项目的缓存架构:判断哪些数据适合文件缓存、哪些需要内存数据库、如何配置分布式算法避免热点数据单点故障。具体场景包括:登录状态的 Session 共享、秒杀活动的库存扣减、高频查询结果的缓存、全页面静态化。

资料怎么配合练习

课程提供 Ubuntu 环境搭建和 LNMP 配置的详细步骤,建议在自己服务器上实操一遍。ThinkPHP 框架搭建部分(2-3)需要实际安装和配置。Memcached 和 Redis 的安装配置(3-4、4-2)也要亲自动手,光看视频记不住命令行参数。

练习题集中在 3-5 登录数据存储、4-5 秒杀功能这两个案例。建议先理解原理,再照着代码实现,最后自己改造成其他业务场景。比如把秒杀功能改成优惠券领取,把 Session 共享改成多服务器日志聚合。

这门课的价值不在「讲了多少命令」,而在「帮你建立缓存设计的思维框架」。看完后你面对一个慢查询项目,能说出「这里该用文件缓存」「那里该上 Redis」,而不是盲目加索引或换数据库。

课程目录

第1章 课程介绍 试看 4 节 | 18分钟 1-1 课程介绍 (05:39).mp4
 1-2 布置缓存的目的 (02:43).mp4
 1-3 合理使用缓存 (01:53).mp4
 1-4 哪些环节适合用缓存 (07:24).mp4
 第2章 文件类缓存 9 节 | 135分钟 2-1 Ubuntu环境搭建 (09:46).mp4
 2-2 LNMP环境搭建 (09:55).mp4
 2-3 ThinkPHP框架搭建和简单配置 (08:57).mp4
 2-4 CDN是什么 (06:17).mp4
 2-5 碎片化的数据文件缓存 (26:02).mp4
 2-6 全页面静态化-上 (18:03).mp4
 2-7 全页面静态化-中 (20:23).mp4
 2-8 全页面静态化-下 (17:36).mp4
 2-9 数据分块加载实验 – FaceBook的BigPipe技术 (17:36).mp4
 第3章 内存数据库之Memcached 7 节 | 56分钟 3-1 内存数据库介绍 (02:02).mp4
 3-2 Memcached是什么 (02:21).mp4
 3-3 Memcached的工作原理和内存管理机制 (04:06).mp4
 3-4 Linux下配置和安装Memcached (06:09).mp4
 3-5 封装Memcached缓存类并实现登录时的数据存储 (24:20).mp4
 3-6 分布式服务器的两种分布式算法 (08:21).mp4
 3-7 集中式服务器的案例:Session共享机制 (08:26).mp4
 第4章 内存数据库之Redis 

11 节 | 154分钟 4-1 Redis概述 (03:27).mp4
 4-2 配置和命令行及常见命令 (09:02).mp4
 4-3 String类型 - Memcached的替代产品 (19:04).mp4
 4-4 Hash类型 - 实现会员资料模块 (19:04).mp4
 4-5 List类型 – 实现秒杀功能 (29:09).mp4
 4-6 Set类型 – 实现南北专供商品的对比模块 (20:16).mp4
 4-7 ZSet类型 – 实现吃货排行榜 (12:09).mp4
 4-8 Redis 持久化方案 (13:37).mp4
 4-9 合理高效的使用Redis需要注意啥 (04:10).mp4
 4-10 六台机器搭建RedisCluster分布式集群-上 (10:39).mp4
 4-11 六台机器搭建RedisCluster分布式集群-下 (12:23).mp4
 第5章 浏览器缓存 3 节 | 26分钟 5-1 浏览器是怎么使用缓存的 (05:33).mp4
 5-2 什么是强缓存和协商缓存 (14:41).mp4
 5-3 合理使用浏览器缓存来提高效率 (05:22).mp4
 第6章 应用程序缓存 4 节 | 35分钟 6-1 Apache缓存过期和控制机制 (06:50).mp4
 6-2 PHP运行机制和OpCache (10:12).mp4
 6-3 Mysql的查询过程和查询缓存 (04:28).mp4
 6-4 查询缓存和MySQL优化 (13:01).mp4
 第7章 课程总结 1 节 | 9分钟 7-1 课程总结 (08:26).mp4