redis基于Stream类型实现消息队列,命令操作,术语概念,个人总结等

news2025/4/5 13:29:15



个人大白话总结

1 在Redis Stream中,即使消息被消费者确认(acknowledged, ACK),消息也不会自动从Stream数据结构中删除。这与Kafka或RabbitMQ等传统消息队列系统的做法不同,在那些系统中,一旦消息被消费并确认,通常会被从队列中移除以释放存储空间。

2 若一个Stream中有5条消息,并且存在两个消费者组,这两个消费者组可以各自独立地消费这些消息,即所有消息对于不同消费者组来说是“广播”的,这一点类似于Kafka中的逻辑,每个消费者组都会按照其自身的消费进度处理消息。

3 在同一个消费者组内部如果有两个消费者A和B,若A已消费了3条消息,则剩余的2条消息将可供B或其他消费者消费。这意味着同一个消费者组内的多个消费者之间遵循竞争消费模式(Competitive Consumer Pattern),确保消息仅被组内一个消费者消费一次

4 当消费者从Stream中读取消息并开始处理时,它们会在本地维护一个Pending(待处理)列表,并将接收到的消息存入其中。当消费者完成对某条消息的处理并成功提交确认(acknowledge, ACK)后,该条消息会在消费者本地的Pending列表中被移除或者被标记为已处理状态。这种设计确保了消息的有序消费、状态跟踪以及防止消息被重复消费,因为只有当消息被确认处理完成后,才会从本地Pending列表中清除,从而允许消费者获取并处理新的消息。


stream相关的命令使用

基于Redis的Stream类型的完美消息队列解决方案 - 知乎

Redis入门 - 数据类型:Stream详解_redis stream-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1621266.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 服务器硬件及RAID配置实战

服务器详解 服务器分类 可以分为:塔式服务器、机架服务器、刀片服务器、机柜服务器等。 其中以机架式居多 服务器架构 服务器品牌: 戴尔、AMD、英特尔、惠普、华为、华3(H3C)、联想、浪潮、长城 服务器规格: 规格…

贵州大学计算机840初试

本人是24考研的一名考生,现在已经上岸啦。有想考贵州大学计算机的同学需要资料可以找我喔~ #希望大家都可以如愿以偿😎😎

Java web应用性能分析之客户端慢

客户端慢的原因包括: 终端设备老化(手机、PAD、电脑年限久远、运行期间产生了很多垃圾未清除)终端网络设备老化(路由器、交换机老化)跟我们使用的手机一样,路由器也需要及时更新换代,否则硬件跟…

11.泛型

文章目录 1 泛型概念2. 自定义泛型结构3 泛型方法4 泛型在继承上的体现5 通配符的使用 1 泛型概念 所谓泛型就是用标识符标识不确定的类型,详细说就是:定义类或接口时用标识符表示类中某个属性的类型或者是某个方法的返回值及参数类型。泛型将在使用时&a…

oracle 12c+ max_string_size参数

一个客户的数据库版本是19.3,在做数据库复制的时候,目标端报错了,查看了一下问题发现表的字段长度有不对,在12c以前我们都知道varchar的长度最大是4000,但是客户这里居然有32767: 把客户的建表语句弄出来,放到我的一个19c的测试环境进行测试: 发现报错了: 这里报错很明显了,是M…

力扣面试 150二叉搜索树迭代器 中序遍历 栈模拟递归 步骤拆分

Problem: 173. 二叉搜索树迭代器 思路 &#x1f469;‍&#x1f3eb; 三叶 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间复杂度: O ( h ) O(h) O(h) Code class BSTIterator { Stack<TreeNode> d new Stack<>();public BSTIterator(TreeNode root){dfsLe…

thsi指针用法总结

1 c类对象中的变量和函数是分开存储的 2 所以对象共用一份成员函数&#xff0c;类的大小是指非静态的成员变量&#xff1b; this 完成链式操作 const 修饰成员函数

IDEA启动项目弹框提示:Lombok requires enabled annotation processing

问题现象 IDEA启动项目弹框提示如下图&#xff1a; 原因分析 由弹窗内容分析&#xff0c;首先确认我的IDEA中已经安装了Lombok插件&#xff0c;其次去settings中查找annotation processing配置&#xff0c;发现确实有这个配置并且未勾选启动 如何解决 修改配置

Linux:动静态库介绍

动静态库 库的介绍开发环境 & 编译器库存在的意义库的实现库的命名静态库制作和使用总结 动态库的制作和使用动态库的使用方法方法一方法二方法三 库加载问题静态库加载问题动态库的加载问题与位置无关码 C/C静态库下载方式 库的介绍 静态库&#xff1a;程序在编译链接的时…

[MoeCTF-2022]Sqlmap_boy

title:[MoeCTF 2022]Sqlmap_boy 查看网页源代码&#xff0c;得到提示 <!-- $sql select username,password from users where username".$username." && password".$password.";; --> 用万能密码绕过&#xff0c;用’"闭合 爆数据库…

Lambda表达式特点

Lambda 表达式是 Java 8 引入的一项重要特性&#xff0c;它们提供了一种更简洁的方式来表达匿名函数。Lambda 表达式允许你将一段代码传递给方法&#xff0c;而不是显式创建一个实现了接口的匿名内部类。Lambda 表达式通常用于实现单个抽象方法的接口&#xff08;即函数式接口&…

用友NC Cloud importhttpscer接口任意文件上传漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、漏洞描述 用友NC Cloud的importhttpscer接口如果存在任意文件上传…

SpringBoot+Vue开发记录(四)

说明&#xff1a; 本篇文章的主要内容是软件架构以及项目的前端Vue创建 一、软件架构 我道听途说的&#xff0c;听说这个东西很关键很重要什么的。 软件架构&#xff08;software architecture&#xff09;是一个系统的草图,是一系列相关的抽象模式&#xff0c;用于指导大型软…

安装Selenium库的方法最终解答!_Python库

安装Python库Selenium 我的环境&#xff1a;Window10&#xff0c;Python3.7&#xff0c;Anaconda3&#xff0c;Pycharm2023.1.3 Selenium Selenium是一个开源的自动化测试工具&#xff0c;它支持多种编程语言&#xff08;如Python、Java等&#xff09;&#xff0c;能够在不同…

代码托管基础操作

在待上传代码文件夹中右键&#xff0c;打开Git Bash Here依次输入以下命令&#xff1a; git init(在本地初始化一个代码仓库&#xff0c;具体表现为会在你的文件夹里出现一个隐藏的.git文件夹) git add .&#xff08;先把代码放到本地的一个缓冲区&#xff09;添加当前目录下的…

基于达梦数据库开发-Java篇

文章目录 前言一、示例展示1.环境准备2.采用基础的jdbc调用3.采用扩展的mybatis调用 二、注意事项1.使用路径注解2.数据库对象的准确引用 三、可能异常1.无效的表或视图名2.无效的表或视图名3.网络通信异常 总结 前言 达梦提供了JDBC方式的驱动以便进行Java开发。默认情况下相…

3个比较不错的Linux云音乐应用程序整理

在现代音乐流媒体时代&#xff0c;基于云的音乐应用程序因其便利性和可访问性而变得非常流行。Linux 用户尤其寻求可靠且功能丰富的音乐播放器来无缝地享受他们喜爱的音乐。 在这里&#xff0c;我们探讨了三个最好的基于云的音乐应用程序&#xff0c;每个应用程序都提供专为 L…

函数的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中经常会需要查询数据库中已有的函数或者某一个函数的内容&#xff0c;下面就介绍一下如何查询函数。 和存储过程类似&#xff0c;这也需要使用到数据字典user_s…

污水处理设备运维注意事项有哪些

污水处理设备的运维是确保污水处理效率和处理质量的关键环节。良好的运维不仅可以延长设备的使用寿命&#xff0c;还能确保污水处理过程的稳定性和可靠性。以下是一些污水处理设备运维的重要注意事项&#xff1a; 1. 定期检查和维护 设备检查&#xff1a;定期对污水处理设备进…

ctfshow web入门 web180--web185

web180 import requests import recom re.compile("admin") def repisTrue(char):url f"http://自己环境的网址/api/?id1%27and%27{char}%27%27{char}&page1&limit10"res requests.get(url)w com.search(res.text)if w is not None:return T…