接上文:RBucket对象桶 -> Redisson系列-1(让redis操作更优雅)_子书少卿的博客-CSDN博客
(Queue) 结构的 RQueue Java对象实现了 java.util.queue 接口。尽管 Roueue 对象无初始大小 (边界)限制,但对象的最大容量受Redis限制,最大元素数量是 4,294,967,295 个;
顾名思义,其实就是咱们在“数据结构与算法”一书中提到的拥有“FIFO特性~先进先出”的队列 ~ 异步解耦
双端队列 (Deque)
基于Redis的Redisson分布式无界双端队列 (Deque) 结构的 RDeque Java对象实现了java.uti1.Deque 接口。尽管 RDeque 对象无初始大小 (边界) 限制,但对象的最大容量受Redis限制,最大元素数量是 4 294 967 295 ;
阻塞队列 (Blocking Queue)--并发安全
基于Redis的Redisson分布式无界阻塞队列 (Blocking Queue) 结构的 RBockingQueue Java对象实现了 java,util.concurrent,BlockingQueue 接口。尽管 RBlockingQueue 对象无初始大小 (边界) 限制但对象的最大容量受Redis限制,最大元素数量是 4 294 967 295 个;
有界阻塞队列 (Bounded Blocking Queue)
基于Redis的Redisson分布式有界阻塞队列 (Bounded Blocking Queue) 结构的RBoundedBlockingQueue Java对象实现了 java.util.concurrent.BlockingQueue 接口。该对象的最大容量受Redis限制,最大元素数量是 4 294 967 295 个。队列的初始容量 (边界)必须在使用前设定好
阻塞双端队列 (Blocking Deque)
基于Redis的Redisson分布式无界阻塞双端队列 (Blocking Deque) 结构的 RBlockingDeque Java对象实现了 java.util.concurrent.BlockingDeque 接口。尽管 RBlockingDeque 对象无初始大小(边界) 限制,但对象的最大容量受Redis限制,最大元素数量是 4 294 967 295 个
阻塞公平队列 (Blocking Fair Queue)
基于Redis的Redisson分布式无界阻塞公平队列 (Blocking Fair Queue) 结构的 BlockingFairQueueJava对象在实现Redisson分布式无界阻塞队列 (Blocking Queue) 结构 RBockingoueue 接口的基础上,解决了多个队列消息的处理者在复杂的网络环境下,网络延时的影响使”较远”的客户端最终收到消息数量低于“较近”的客户端的问题。从而解决了这种现象引发的个别处理节点过载的情况。
以分布式无界阻塞队列为基础,采用公平获取消息的机制,不仅保证了 po11、 polFromAnypollLastAndofferFirstTo 和 take 方法获取消息的先入顺序,还能让队列里的消息被均匀的发布到处在复杂分布式环境中的各个处理节点里;
阻塞公平双端队列 (Blocking Fair Deque)
基于Redis的Redisson分布式无界阻塞公平双端队列 (Blocking Fair Deque)结构的aRBlockingFairDeque Java对象在实现Redisson分布式无界阳塞双端队列 (Blocking Deque) 结构RBlockingPegue 接口的基础上,解决了多个队列消息的处理者在复杂的网络环境下,网络延时的影响使”较远”的客户端最终收到消息数量低于”较近”的客户端的问题。从而解决了这种现象引发的个别处理节点过载的情况
以分布式无界阻塞双端队列为基础,采用公平获取消息的机制,不仅保证了 po11 、 takepollFirst 、 takeFirst 、 pollLast 和 takeLast 方法获取消息的先入顺序,还能让队列里的消息被均匀的发布到处在复杂分布式环境中的各个处理节点里。
测试:
@Slf4j
@Service
public class QueueService {private static final String QUEUE_KEY = "queue:key";private static final String BLOCKING_QUEUE_KEY = "blocking:queue:key";@Resourceprivate RedissonClient redisson;/**** @param str* @return*/public void queueAdd(String str){// 无界普通队列
// RQueue
todo:
队列和topic的区别?