这门课解决什么工作场景

后端开发里,只要服务做了多机部署,就绕不开分布式锁。典型场景是定时任务防重、商品扣库存、账户余额更新这类需要保证临界区互斥的逻辑。很多人在业务里直接调一个 SETNX 就以为加锁成功了,结果上线后遇到锁超时任务被重复执行、服务宕机导致锁不释放、高并发下大量重试把 Redis 压垮等问题。这门课就是针对这些实际踩坑点展开的,从最简实现到续约、重试、singleflight 优化,一步步把一个能在生产环境用的 Redis 分布式锁补全。它不是科普概念,而是带你写出一个带单元测试、能处理超时续约、有重试策略的可用工具。

适合什么基础与建议先看哪几块

资料默认你已经能独立写 Go 基础代码,知道 goroutine 和 channel 怎么用,也接触过 Redis 的常见命令。如果你连基本并发和 Redis 操作都不熟,建议先补基础再看。零基础直接看会在续约和 singleflight 处卡住。看资料时建议按这个顺序:先看最简实现那一节,跟着把核心加锁和解锁逻辑敲一遍,理解为什么要用 Lua 脚本保证原子性;接着看续约那一节,这是生产环境最容易出问题的地方,重点看续约时机和怎么停;然后看加锁重试与策略,结合单测和集成测试验证逻辑;最后看 singleflight 优化,这一块解决的是热点 key 击穿问题,属于进阶用法,理解思路即可,不用死扣细节。

学完能独立做什么与资料怎么配合练习

学完后你应该能独立为自己的业务系统实现一个健壮的分布式锁组件,知道什么场景该用、什么场景不该用,遇到锁失效能定位是超时没续约还是重试逻辑有漏洞。配合练习的方式是:每看完一节资料,先暂停,自己动手写一遍对应代码,再对照资料里的实现查漏补缺。最简实现那节务必自己敲一遍 Lua 脚本,不要复制粘贴。续约那节要自己起两个 goroutine 模拟业务执行和后台续约,手动杀掉续约进程观察锁超时行为。重试那节自己写一个并发场景压一压,看退避策略是否生效。资料里给的单元测试和集成测试代码是很好的参照,但不要只看,要自己改参数跑一遍,比如把续约间隔调大看会不会出现误删别人锁的情况。动手改过、跑过、踩过坑,这门课才算没白看。


01 讲师介绍与课程内容 · 02 用 Redis 实现一个最简分布式锁 · 03 单元测试与集成测试 · 04 续约:解决超时问题 · 05 加锁重试与重试策

课程目录

*   01 讲师介绍与课程内容/

  *   01 讲师介绍与课程内容

*   02 用 Redis 实现一个最简分布式锁/

  *   01 用 Redis 实现一个最简分布式锁

*   03 单元测试与集成测试/

  *   01 单元测试与集成测试

*   04 续约:解决超时问题/

  *   01 续约:解决超时问题

*   05 加锁重试与重试策略/

  *   01 加锁重试与重试策略

*   06 singleflight 优化与面试要点总结/

  *   01 singleflight 优化与面试要点总结