Queue-基于redis的队列
创始人
2025-05-31 07:58:31
0

接上文: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 queue = redisson.getQueue(QUEUE_KEY);
//        queue.offer(str);// 阻塞队列RBlockingDeque blockingDeque = redisson.getBlockingDeque(BLOCKING_QUEUE_KEY);blockingDeque.offer(str);}/**** @return*/public void queueConsume(){
//        RQueue queue = redisson.getQueue(QUEUE_KEY);
//        System.out.println( queue.poll());RBlockingDeque blockingDeque = redisson.getBlockingDeque(BLOCKING_QUEUE_KEY);System.out.println(blockingDeque.poll());}} 

todo:

队列和topic的区别?

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...