当前位置: 首页 > article >正文

Redis-消息队列

消息队列概念

消息队列不仅可以用来传输消息,还可以确保消息的安全性(持久化、确保消息被消费)

Redis消息队列实现

基于List结构模拟消息队列

非阻塞式:利用LPUSH结合RPOP、或者RPUSH结合LPOP来实现;

阻塞式:利用BLPUSH和BRPOP实现

如果已经从队列中取到了消息,但是发生宕机等情况,这条消息就会丢失,并且pop的形式也只支持单消费者(智能有一个人拿到这个消息)

基于PubSub的消息队列

PubSub是Redis2.0版本引入的消息传递模型。消费者可以订阅一个或多个channel,生产者向对应channel发送消息后,所有订阅者都能收到相关信息。

发送的消息不会在redis中保存,如果没有人接收就会丢失。

基于Stream的消息队列

单消费模式

Stream是Redis 5.0引入的一种新数据类型,可以实现一个功能非常完善的消息队列。

发送消息命令:

读取消息的方式:

堵塞式读取方法:

当指定起始ID为¥(读取最新消息)时,如果同时来了好几条消息,会出现消息漏读的情况。

消费者组

创建消费者组:

从消费者组读取消息:

确认消息:XACK [消费者][组][消息序号]

JAVA代码实现

优点


http://www.kler.cn/news/339401.html

相关文章:

  • JavaScript 变量的简单学习
  • 贪心算法c++
  • docker compose入门3—docker compose yaml字段详解
  • Polars:从 Apache Spark 过渡指南
  • 探索杨辉三角形的奥秘:C#实现
  • Python | Leetcode Python题解之第464题我能赢吗
  • 【什么是回调机制?一篇文章掌握回调机制及思想】
  • 在虚拟机里试用了几个linux操作系统
  • 网络编程(14)——基于单例模板实现的逻辑层
  • 收银台实现iframe跨页面调用函数的方法——未来之窗行业应用跨平台架构
  • 《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-07-通信网络构建案例分析
  • 毕设 深度学习语义分割实现弹幕防遮(源码分享)
  • 容器管理工具Docker
  • List子接口
  • C语言 | 第十一章 | static 日期函数 数学函数
  • 活动邀请 | SonarQube×创实信息即将亮相2024 GOPS全球运维大会-上海站,分享代码质量与安全提升策略
  • JavaScript函数基础(通俗易懂篇)
  • 【iOS】计算器仿写
  • 面试(十)
  • 三级等保对postgresql的安全要求配置