外观
一句话答案
Redis 锁(高性能/主从可能丢锁)、ZK 锁(强一致/性能一般)、DB 锁(简单/性能差),生产推荐 Redisson。
核心要点
| 方案 | 性能 | 可靠性 | 实现复杂度 |
|---|---|---|---|
| Redis | 高 | 中(主从不一致) | 低 |
| Zookeeper | 中 | 高(CP) | 中 |
| 数据库 | 低 | 高 | 低 |
生产推荐: Redisson(Watch Dog续期+可重入+公平锁)
追问与易错
追问方向:
- Redis 主从切换时锁丢失怎么办?(RedLock/容忍/业务幂等)
- ZK 分布式锁怎么实现的?(临时顺序节点 + Watch 前一个节点)
- 分布式锁的粒度怎么设计?(越细并发越高,但复杂度也越高)
易错点:
- ❌ "Redis 分布式锁绝对安全"——主从切换可能丢锁,需要评估业务容忍度
- ❌ "加了分布式锁就万事大吉"——还要考虑锁粒度/过期时间/业务幂等
💡 记忆锚点
三把锁的取舍:Redis锁=跑车(快但主从切换可能丢钥匙),ZK锁=坦克(稳但慢,临时顺序节点+Watch),DB锁=自行车(简单但太慢)。生产首选Redisson:看门狗自动续期、可重入、红锁方案,但主从丢锁问题要靠业务幂等兜底。