正版资源关于死锁、Redis、分布式锁、ZK、分布式事务的面试题整理
这份资料围绕一个很具体的面试场景展开:并发编程与分布式系统交界处的高频追问。死锁、Redis、分布式锁、ZooKeeper、分布式事务,这几个词单独拿出来都不算冷门,但它们经常被放在同一轮面试里连着问——先让你手写一个死锁示例,再追问 Redis 锁怎么防止误删,接着问 ZK 临时顺序节点凭什么比
这份资料围绕一个很具体的面试场景展开:并发编程与分布式系统交界处的高频追问。死锁、Redis、分布式锁、ZooKeeper、分布式事务,这几个词单独拿出来都不算冷门,但它们经常被放在同一轮面试里连着问——先让你手写一个死锁示例,再追问 Redis 锁怎么防止误删,接着问 ZK 临时顺序节点凭什么比 Redis 更可靠,最后落到跨服务的分布式事务怎么选型。能把这条线讲清楚的材料不多,这份整理属于其中之一。
主题范围与知识结构
资料的内容组织是按面试追问的路径走的,而不是按教科书章节。死锁部分主要处理的是成因判定与排查手段:四个必要条件、循环等待的构造方式、jstack 输出里怎么识别死锁线程、以及工程上更常见的「非典型死锁」(线程池耗尽、连接池占满导致的相互等待)。这部分的价值在于它把死锁从「背四个条件」拉回到真实 JVM 的线程栈上。
分布式锁部分横跨 Redis 与 ZooKeeper 两套实现。Redis 侧的重点是原子性:SET NX EX 取代 setnx + expire 的原因、value 为什么必须带唯一标识、释放锁为什么需要 Lua 脚本保证比对与删除的原子性,以及 Redlock 的争议点。ZK 侧则落在临时顺序节点、会话超时、Watch 机制与羊群效应,以及 CP 模型下锁语义和 Redis AP 模型的差异。两部分放在一起看,能更清楚地理解「同一个锁需求在不同一致性模型下的取舍」。
可复用的代码与排查思路
分布式事务是这份资料的另一个重心,覆盖了 2PC/XA 的协调者瓶颈、TCC 的 Try-Confirm-Cancel 三段补偿、本地消息表与事务消息的最终一致性方案、以及 Saga 的长事务拆分。这些方案的对比不是停留在名词解释,而是落到「什么业务场景能用、补偿逻辑写在哪里、幂等怎么做」这类工程问题上。对于需要在自己项目里做选型的人来说,这套对照关系可以直接迁移。
把死锁排查和分布式锁放在一起,还能拼出一条完整的实践路径:本地用 jstack 和线程 dump 定位竞争,跨进程用 Redis/ZK 锁做互斥,再往上用 TCC 或消息表兜住一致性。这三个层次用的工具不同,但遇到的问题模式相似——超时、重试、幂等、释放时机。资料里对这几点的处理方式可以直接作为代码骨架参考。
怎么用这份资料
- 先按主题过一遍,把每个方案的「适用边界」记下来,而不是记结论。
- Redis 与 ZK 两套锁的实现,建议自己敲一遍最小可运行示例,重点测超时与误删场景。
- 分布式事务部分挑一个自己熟悉的业务,用两三种方案分别推演一遍补偿流程。
- 死锁部分配合一次真实的压测或线程 dump 分析,比只看文字印象深得多。
适合的读者
如果你已经写过并发代码、用过 Redis 或 ZK,但被问到「为什么这样实现」「换个场景还成立吗」时答不完整,这份整理适合作为对照材料。它的定位不是入门教程,而是把散落在各个项目里的实践经验收拢到一条追问线上,便于自查知识盲区。建议边看边动手验证,把每个结论都落到能跑起来的代码上,而不是停在阅读层面。
关于死锁、Redis、分布式锁、ZK、分布式事务的面试题整理
面试题解析,深入理解分布式锁与事务
编辑点评
全面覆盖死锁、Redis、分布式锁、ZK等核心概念,助力面试官级理解。
⭐ 编辑推荐
精选2023面试必备题,深入解析死锁、Redis、分布式锁、ZK、分布式事务等关键技术。
✨ 课程亮点
课程目录
专题13:死锁面试题(卷王专供+ 史上最全 + 2023面试必备)-V2-from-Java面试红宝书-release_f.pdf [5.7 MB]
适合人群
- 后端开发工程师
- 面试求职者
- 技术爱好者
🎯 学习收获
- 掌握分布式锁与事务处理
- 提升面试竞争力
- 深入理解系统架构
🎉 祝您学习愉快!




