分布式锁实战:从单机锁原理到 Redis 高并发解决方案
本课程不灌鸡汤,直接切入高并发场景下的核心痛点:库存超卖与数据不一致。当系统流量激增,单机数据库的乐观锁或悲观锁无法保证全局数据正确时,分布式锁便是唯一的解决方案。课程以“分布式锁”为核心,系统拆解了从底层原理到工程落地的全过程,旨在解决多线程或多进程环境下资源竞争导致的脏数据问题。
先理清概念与选型,再动手写代码
在动手之前,必须先明确适用场景。课程开篇并未直接堆砌 Redis 脚本,而是先通过 MySQL 的悲观锁(select for update)和乐观锁(CAS 更新)进行对比演示,让你直观理解它们在不同并发量下的优劣与局限。随后,课程引入 Redis 实现分布式锁,详细分析了其核心指令与原理。这一部分至关重要,它能帮你判断:你的业务是读多写少还是写多读多?是强一致性要求还是最终一致性?从而在 MySQL 锁、Redis 锁之间做出正确的技术选型,避免盲目上 Redis 导致性能瓶颈或架构复杂化。
跟着案例走通原子性,掌握防死锁与防误删技巧
理论之后是核心实战。课程通过一个具体的“减库存”案例工程,串联起分布式锁的完整生命周期。你将跟随步骤学习如何基于 Redis 实现加锁、解锁,并重点攻克分布式锁最棘手的两个问题:死锁与误删。课程演示了利用 Lua 脚本保证“加锁 - 检查 - 解锁”原子性的关键思路,以及通过设置过期时间和记录锁主 UUID 来防止锁失效导致业务卡死、防止其他线程误删锁的完整策略。学完这部分,你不仅能看懂源码,更能独立写出健壮的分布式锁封装代码,并在实际项目中复现这一架构。
资料怎么用?直接对照案例复现即可
配套的资料包结构清晰,无需纠结文件名。建议先观看“技术要求”与“教程简介”,了解运行环境与整体思路。随后按顺序观看“减库存案例”的搭建过程,再对照“乐观锁/悲观锁”的对比视频,理解为什么当前方案需要分布式锁。最后,重点研读关于 Redis 锁的加锁、解锁 Lua 脚本演示及原理分析部分。无需额外安装第三方库,所有代码逻辑均基于标准 Redis 命令与 Lua 脚本,适合有一定 Java 基础或 Redis 基础的学习者直接上手复现与调试。
课程目录
课程目录85 集
- 视频
- 1.教程简介.mp4 34.22M
- 10.MySQL锁之使用一个更新的SQL语句完成判断及更新.mp4 82.63M
- 11.使用一个SQL语句时的优缺点.mp4 63.76M
- 12.悲观锁的范围.mp4 93.93M
- 13.MySQL悲观锁之使用select for update减库存.mp4 115.74M
- 14.MySQL悲观锁之select for update存在的问题.mp4 73.78M
- 15.使用MySQL乐观锁解决超卖.mp4 144.55M
- 16.测试MySQL乐观锁.mp4 73.78M
- 17.MySQL乐观锁存在的问题.mp4 81.36M
- 18.四种锁小结.mp4 14.02M
- 19.演示Redis中的超卖现象.mp4 115.65M
- 2.技术要求.mp4 2.09M
- 20.Redis乐观锁相关指令.mp4 84.31M
- 21.使用Redis乐观锁解决超卖.mp4 122.94M
- 22.Redis乐观锁问题.mp4 10.42M
- 23.为什么需要分布式锁.mp4 140.41M
- 24.Redis实现分布式锁分析.mp4 69.64M
- 25.基于Redis实现一个简单的分布式锁.mp4 35.38M
- 26.把递归重试改成循环重试.mp4 31.29M
- 27.给锁添加过期时间防止死锁发生.mp4 114.56M
- 28.通过UUID防误删.mp4 112.97M
- 29.Lua脚本入门.mp4 229.30M
- 3.搭建一个减库存的简单案例工程.mp4 24.57M
- 30.使用Lua脚本解决防误删的原子性问题.mp4 154.24M
- 31.解读ReentrantLock的底层原理.mp4 491.13M
- 32.分析可重入锁使用的Redis数据模型.mp4 63.01M
- 33.可重入锁之加锁的Lua脚本.mp4 43.66M
- 34.可重入锁之解锁的Lua脚本.mp4 36.97M
- 35.可重入锁代码实现.mp4 259.96M
- 36.测试可重入性.mp4 154.76M
- 37.自动续期思路分析.mp4 158.85M
- 38.代码实现自动续期.mp4 147.59M
- 39.使用Redis实现分布式锁小结.mp4 67.54M
- 4.使用JVM本地锁解决减库存时的超卖问题.mp4 86.24M
- 40.RedLock红锁算法介绍.mp4 278.23M
- 41.RedLock算法介绍下.mp4 24.33M
- 42.Redisson介绍.mp4 54.42M
- 43.Redisson入门程序.mp4 124.76M
- 44.Redisson常用配置.mp4 115.41M
- 45.Redisson分布式可重入锁的底层原理.mp4 36.93M
- 46.测试Redisson的自动续期及可重入.mp4 104.68M
- 47.Redisson之FairLock公平锁.mp4 165.24M
- 48.Redisson之RReadWriteLock读写锁.mp4 29.34M
- 49.Redisson之RSemaphore信号量.mp4 257.73M
- 5.改造代码减MySQL中的库存.mp4 80.28M
- 50.Redisson之RCountDownLatch倒计数器.mp4 62.28M
- 51.Redisson小结.mp4 24.48M
- 52.ZooKeeper简介.mp4 80.82M
- 53.ZooKeeper的下载安装.mp4 28.69M
- 54.ZooKeeper基本指令.mp4 150.09M
- 55.ZooKeeper四种节点.mp4 136.87M
- 56.Znode节点的事件监听.mp4 144.62M
- 57.Java客户端之获取及关闭链接.mp4 118.96M
- 58.Java客户端之四种节点的新增.mp4 46.49M
- 59.Java客户端之节点查询.mp4 29.95M
- 6.使用JVM本地锁解决MySQL超卖.mp4 51.76M
- 60.Java客户端之更新和删除.mp4 19.06M
- 61.Java客户端之节点监听事件.mp4 132.26M
- 62.ZooKeeper分布式锁的实现思路.mp4 28.94M
- 63.ZooKeeper分布式锁的基本实现上.mp4 58.98M
- 64.ZooKeeper分布式锁的基本实现下.mp4 54.20M
- 65.测试ZooKeeper分布式锁的基本实现.mp4 10.83M
- 66.ZooKeeper分布式锁优化之阻塞锁思路分析.mp4 23.98M
- 67.ZooKeeper分布式锁优化之阻塞锁代码实现.mp4 77.02M
- 68.测试阻塞锁.mp4 19.38M
- 69.ZooKeeper分布式锁之可重入锁.mp4 46.25M
- 7.三种情况导致JVM本地锁失效之多例模式.mp4 14.80M
- 70.对比Redis和ZooKeeper分布式锁.mp4 28.96M
- 71.Curator介绍及整合.mp4 129.59M
- 72.Curator之InterProcessMutex可重入锁.mp4 22.07M
- 73.测试InterProcessMutex的可重入性.mp4 39.97M
- 74.InterProcessMutex底层原理之锁的初始化.mp4 92.20M
- 75.InterProcessMutex底层原理之加解锁.mp4 455.90M
- 76.Curator之InterProcessSemaphoreMutex不可重入锁.mp4 25.52M
- 77.Curator之InterProcessReadWriteLock可重入的读写锁.mp4 48.53M
- 78.Curator之InterProcessMultiLock联锁.mp4 11.96M
- 79.Curator之InterProcessSemaphoreV2信号量.mp4 117.83M
- 8.三种情况导致JVM本地锁失效之事务.mp4 127.06M
- 80.Curator之共享计数器.mp4 112.17M
- 81.基于MySQL实现分布式锁的思路分析.mp4 47.58M
- 82.代码实现MySQL的分布式锁.mp4 77.47M
- 83.分析MySQL分布式锁存在的问题及解决方案.mp4 107.94M
- 84.分布式锁总结.mp4 44.63M
- 9.三种情况导致JVM本地锁失效之集群部署.mp4 113.99M
- 资料.zip 92.35M
- sgg-分布式锁视频教程/






