分布式锁实战:从单机锁原理到 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-分布式锁视频教程/