Redisson 简介
摘要
- 本文介绍 Redisson
- 本文基于
redis-7.4.7,springboot-3.5.8 - Redis官网:https://redis.io/
- Redis 命令文档:https://redis.io/docs/latest/commands/
- Redisson 官方文档
Redisson 的官方定位
-
✅ 面向 Valkey / Redis 的 Java 客户端
-
✅ 同时也是一个 实时数据平台(Real-Time Data Platform)
-
✅ 提供 高级抽象 + 分布式能力扩展
可以理解为:Redisson = Redis Java Client + 分布式对象平台 + 高级并发语义
-
它并不是简单替代 Jedis / Lettuce,而是:
- 在 Redis 之上构建了一层 面向对象的分布式抽象模型
- 把 Redis 从“命令型数据库”提升为“分布式数据结构与服务平台”。
-
Redisson 在 Java 代码与 Redis 命令之间增加了一层抽象,其带来的价值:
| 价值 | 说明 |
|---|---|
| 屏蔽命令细节 | 不再直接拼 Redis 命令 |
| 面向对象建模 | Map / Set / Lock / Queue |
| 语义更稳定 | 不依赖命令细节 |
| 降低学习成本 | Java 开发者无需深度理解 Redis 协议 |
| 提升可维护性 | 业务代码更清晰 |
Redisson 扩展的能力
-
分布式集合(Distributed Collections)
1 | 特点: |
| Redisson 对象 | 类比 Java |
|---|---|
| RMap | Map |
| RSet | Set |
| RList | List |
| RQueue | Queue |
| RDeque | Deque |
| RSortedSet | SortedSet |
| RBlockingQueue | BlockingQueue |
-
分布式对象(Distributed Objects)
| 对象 | 语义 |
|---|---|
| RAtomicLong | 分布式原子计数 |
| RBucket | 单值对象,如:RedissonBucket,RedissonJsonBucket |
| RBitSet | 位集合 |
| RBloomFilter | 布隆过滤器 |
| RHyperLogLog | 基数统计 |
-
分布式服务(Distributed Services)
1 | 这是 Redisson 真正的核心竞争力。 |
| 服务 | 解决问题 |
|---|---|
| RLock | 分布式锁 |
| RFairLock | 公平锁 |
| RReadWriteLock | 读写锁 |
| RSemaphore | 信号量 |
| RCountDownLatch | 闭锁 |
| RRateLimiter | 限流 |
| RDelayedQueue | 延迟队列 |
| RExecutorService | 分布式线程池 |
-
命令映射能力(Command Mapping)
1 | Redisson 提供: |
| Redis 类型 | Redisson 对象 |
|---|---|
| String | RBucket, RAtomicLong, RBitSet |
| Hash | RMap, RMapCache |
| List | RList, RQueue, RBlockingQueue |
| Set | RSet, RSetCache |
| ZSet | RScoredSortedSet, RPriorityQueue |
| Bitmap | RBitSet |
| HyperLogLog | RHyperLogLog |
| Geo | RGeo |
| Stream | RStream |
| PubSub | RTopic |
| JSON | RJSONBucket |
Vector(Redis8+) |
RVectorSet |
RedisTemplate VS Redisson
-
结论先行:
1 | ✅ 如果你只是把 Redis 当作 KV / Cache / 简单数据结构存储 → 优先使用 RedisTemplate |
-
核心定位差异
| 维度 | RedisTemplate | RedissonClient |
|---|---|---|
| 抽象层级 | Redis 原生命令封装 | 分布式对象与同步器 |
| 编程模型 | Command-oriented | Object-oriented |
| 关注点 | 数据访问 | 分布式协调 |
| 功能粒度 | String / Hash / List / ZSet | Map / Lock / Semaphore / Queue |
| 一致性保障 | 需要自己设计 | 内置实现 |
| 业务语义 | 偏底层 | 偏业务 |
-
性能与稳定性对比
在“纯 KV 访问”场景下,RedisTemplate 的性能通常优于 Redisson。
| 维度 | RedisTemplate | Redisson |
|---|---|---|
| 延迟 | 更低 | 略高(对象封装) |
| 吞吐 | 更高 | 略低 |
| 内存开销 | 最小 | 较高 |
| 网络请求 | 精简 | 可能多次交互 |
| 稳定性 | 极高 | 高(依赖内部状态机) |
| 排障复杂度 | 低 | 中~高 |
-
✅ 实际生产中的最佳实践: ✔️ 两者共存,而不是二选一。
| 功能 | 技术 |
|---|---|
| 缓存 / 查询 | RedisTemplate |
| 分布式锁 | Redisson |
| 延迟队列 | Redisson |
| 原子计数 | RedisTemplate 或 Redisson Atomic |
| 搜索 / 时序 | RedisTemplate |