Redisson 支持非常丰富的分布式数据结构,几乎覆盖了 Java 标准集合框架的所有常用类型,并在此基础上扩展了分布式特性(如原子操作、监听、过期策略等)。以下是 Redisson 支持的主要分布式数据结构类别及说明:
---
✅ 一、Redisson 支持的分布式数据结构
| 类别 | 数据结构 | Redisson 类型 | 特点 |
|---|---|---|---|
| 单值对象 | String | RBucket | 支持原子操作、过期时间、序列化 |
| 映射 | Hash | RMap, RMapCache | 支持本地缓存、监听器、键值过期 |
| 列表 | List | RList | 有序、可重复,支持索引访问 |
| 集合 | Set | RSet | 无序、不可重复,支持集合运算 |
| 有序集合 | Sorted Set | RSortedSet, RScoredSortedSet | 支持按分数排序、范围查询 |
| 队列 | Queue | RQueue, RBlockingQueue, RDelayedQueue | FIFO、阻塞、延迟队列等 |
| 双端队列 | Deque | RDeque, RBlockingDeque | 支持头尾操作 |
| 优先级队列 | PriorityQueue | RPriorityQueue | 支持优先级排序 |
| 原子变量 | AtomicLong, AtomicDouble | RAtomicLong, RAtomicDouble | 支持分布式原子操作 |
| 布隆过滤器 | BloomFilter | RBloomFilter | 高效去重判断 |
| BitSet | Bitmap | RBitSet | 位运算、签到、标记等 |
| HyperLogLog | 基数统计 | RHyperLogLog | 大数据去重统计 |
| 地理空间 | Geo | RGeo | 支持坐标存储与范围查询 |
| 分布式锁 | Lock | RLock, RReadWriteLock, RedLock | 可重入、公平、红锁等 |
| 信号量 | Semaphore | RSemaphore, RPermitExpirableSemaphore | 控制并发访问数量 |
| 计数器 | CountDownLatch | RCountDownLatch | 分布式线程协调 |
| 屏障 | CyclicBarrier | RCyclicBarrier | 多节点同步点 |
| 发布订阅 | Pub/Sub | RTopic | 支持消息监听与广播 |
✅ 二、Redisson 支持 List 吗?
是的,Redisson 支持 List,对应的分布式类型是:
RList:基于 Redis 的 List 数据结构实现,支持有序、可重复元素。
RList<String> list = redisson.getList("myList");
// 添加元素
list.add("task1");
list.add("task2");
// 获取元素
String first = list.get(0);
// 删除元素
list.remove("task1");
// 获取子列表
List<String> subList = list.range(0, 2);
#### 应用场景:
- 分布式消息队列(FIFO)
- 操作日志、历史记录
- 排行榜(Top-N)
- 分布式任务分片与调度
RList 支持索引访问,但在中间插入/删除性能较差(O(n)),更适合头尾操作。若只需队列行为,推荐使用 RQueue 或 RDeque。---
✅ 总结
- Redisson 提供了极为丰富的分布式数据结构,几乎涵盖 Redis 所有原生类型,并增强为线程安全、支持监听、过期、事务等特性。
- List 是支持的,通过
RList实现,适合有序、可重复、支持索引访问的场景。 - 若用于队列或高并发场景,建议优先考虑
RQueue、RDeque或RBlockingQueue等更合适的结构。