https://blog.csdn.net/qq_40592590/article/details/140605643
Redisson 提供了一系列高级数据结构,这些数据结构封装了 Redis 的原生数据类型,提供了 Java API 的便利性和分布式特性。以下是 Redisson 中一些常用的数据结构,场景还在不断完善中:
RBucket:这是一个简单的键值对存储,相当于 Redis 中的 String 类型。你可以使用它来存储和检索单个值。
场景:用它来做库存扣减的例子
RMap:类似于 Java 的 HashMap,但它是分布式的,可以跨多个节点共享数据。适用于需要键值对集合的场景。
场景:用它来做购物车的例子
RSet:类似于 Java 的 Set,提供无序且元素唯一的集合。在 Redis 中对应的是 Set 数据类型。
RList:提供一个有序的元素集合,类似于 Java 的 List。在 Redis 中,它使用 List 数据类型实现。
场景:用它来做异步的例子
RQueue:实现了一个分布式队列,支持 FIFO(先进先出)顺序。在 Redis 中,底层可能使用 List 或其他数据结构实现。
场景:用它来做流量控制的例子
RBlockingQueue:扩展了 RQueue,提供了阻塞队列的功能,即当队列为空时,从队列中获取元素的操作会阻塞,直到有新的元素加入队列。
场景:用它来做流量控制的例子
RScoredSortedSet:这是一个带有分数的排序集合,类似于 Redis 的 Sorted Set。你可以根据分数对元素进行排序。
场景:用它来做排行榜的例子
RHyperLogLog:实现了一个近似计数器,适用于统计唯一元素的数量,尤其在数据集非常大时很有用。
场景:用它来做去重的例子
RLock:提供了一个分布式锁,可以用于同步分布式系统中的多个进程或线程。
场景:用它来做分布式锁的例子
RSemaphore:分布式信号量,用于限制资源的并发访问。
RCountDownLatch:分布式计数器,可以用于等待多个事件完成。
RAtomicLong:分布式原子长整型,提供了原子操作,可以用于实现计数器或版本号等功能。
RTopic:实现了一个发布/订阅系统,可以用于消息传递。
RScript:用于执行 Lua 脚本,可以用来实现复杂的原子操作。
这些数据结构和工具使得开发人员能够更容易地构建高性能和高可用性的分布式应用程序,而无需直接与 Redis 的命令交互。它们通常提供了更高的抽象级别和更好的错误处理能力。