文章目录
- 概述
- 分布式锁体系全景
- 锁族类图与总览
- 可重入锁(RedissonLock)
- 公平锁(RedissonFairLock)
- 读写锁(RReadWriteLock)
- 围栏锁(RedissonFencedLock)
- 红锁(RedissonRedLock)与多锁(RedissonMultiLock)
- 原子操作与信号量
- 原子类
- 信号量(RSemaphore)
- 可过期信号量(RPermitExpirableSemaphore)
- 倒计时门闩(RCountDownLatch)
- 三级缓存架构详解
- 第一层:RClientSideCaching — 客户端侧缓存
- 第二层:RLocalCachedMap — 本地近缓存
- 第三层:RMapCache — 分布式缓存
- 缓存一致性保障
- 消息传递系统
- 标准发布订阅(RTopic)
- 可靠发布订阅(RReliableTopic)
- 任务调度系统
- RScheduledExecutorService — 分布式调度执行器
- RDelayedQueue — 延迟队列
- 总结
概述
在分布式系统中,并发控制直接决定数据一致性和系统可用性的边界,缓存设计则直接影响系统的吞吐量和响应延迟。Redisson 4.5 在这两个领域提供了远超简单 Redis 客户端的企业级能力——它不仅实现了 Java 标准库中java.util.concurrent.locks.Lock接口的分布式版本,还构建了从服务端分布式缓存到客户端本地近缓存再到订阅通知驱动的客户端侧缓存的三级缓存体系,配合消息传递与任务调度系统,形成了一套完整的分布式基础设施。
本文将从源码级实现原理出发,逐一剖析 Redisson 的并发控制与缓存系统核心机制。
分布式锁体系全景
锁族类图与总览
Redisson 的分布式锁实现围绕RedissonBaseLock基类展开,通过 Lua 脚本与 Redis 命令的组合,在服务端保证了锁操作的原子性。整个锁体系包含以下要素:
| 锁类型 | 实现类 | 接口 | 核心特性 |
|---|---|---|---|
| 可重入锁 | RedissonLock | RLock | 支持同一线程重复获取,WatchDog 自动续期 |
| 公平锁< |