本博客讲述如何使用redis中流stream的组

简言

1. 消费者组(consumer group)允许用户将一个流从逻辑上分成多个不同的流,并让消费者组组下的消费者去处理组中的消息

2. 多个消费者组可以共享同一个流中的元素;但同一个消费者组中的每条消息只能有一个消费者,即不同的消费者将独占组中不同的消息,当一个消费者读取了组中的一条消息后,其他消费者将无法读取这条消息

3. 就目前使用来看,一个流拥有一个消费者组是正常的,至于什么情况下需要使用多个消费者组还没发现,敬请指教

redis流stream使用系列文章

第一篇 redis 流 stream的使用总结 - 基础命令

第二篇 redis 流 stream的使用总结 - 如何遍历

这篇主要讲述的命令

8.1 XGROUP CREATE 创建消费者组

8.2 XREADGROUP GROUP 读取消费者组中的消息

8.3 XACK 将消息标记为“已处理”

8.4 XGROUP SETID 为消费者组设置新的最后递送消息ID

8.5 XGROUP DELCONSUMER 删除消费者

8.6 XGROUP DESTROY 删除消费者组

8.7 XPENDING 显示待处理消息的相关信息

8.8 XCLAIM 转移消息的归属权

8.9 XINFO 查看流和消费者组的相关信息;XINFO GROUPS 打印消费者组的信息; XINFO STREAM 打印流信息

具体用法及示例
8.1 XGROUP CREATE 创建消费者组
    格式:XGROUP CREATE stream group start_id

注释:stream参数用于指定流的名字,group参数用于指定消费者组的名字,start_id参数用于指定元素的起始ID,决定了从流的哪个元素进行读取;0表读取所有消息;10000表读取大于10000的所有消息;$表读取流中大于所有ID的消息,即只读新消息

例如(在流s1中创建一个消费者组group1,该消费者组读取流中所有的消息):

注意:只能为已经存在的流创建消费者组,如果用户给定的流不存在,那么将返回一个错误

例如:流not-exists-stream不存在

8.2 XREADGROUP GROUP 读取消费者组中的消息

格式:XREADGROUP GROUP group1 comsumer1 s1 0

8.3 XACK 将消息标记为“已处理”

8.4 XGROUP SETID 为消费者组设置新的最后递送消息ID

8.5 XGROUP DELCONSUMER 删除消费者

8.6 XGROUP DESTROY 删除消费者组,成功执行返回1,组不存在返回0,流不存在则报错

    格式:XGROUP DESTROY stream group

例如:第一次删除成功返回1;第二次流s2不存在报错;第三次group2不存在返回0;第四次因group1已被删除故不存在返回0

注意:为了保证程序的正确性,用户需保证在删除消费者组时,组中已经没有任何待处理消息

redis 流 stream的使用总结 - 消费者组相关推荐

  1. redis 流 stream的使用总结 - 如何遍历

    本博客讲述如何对redis中的流进行遍历 接上篇博客redis 流 stream的使用总结 - 基础命令 简言 1. XRANGE,XREVRANGE,XREAD命令只适合单个消费者模式,因为这三个命 ...

  2. redis 流 stream的使用总结 - 基础命令

    简言 1.   流(stream)是redist5.0版本新增加的数据结构,也是该版本最重要的更新,专门用于实现消息队列,事件系统 2.   redis之前的其他的数据结构实现消息队列,各有缺点 2. ...

  3. Redis Stream的消费者组介绍

    Stream是Redis 5.0引入的一种新数据类型,它以一种抽象的方式来构建日志结构的数据.本文主要介绍Redis Streams的消费者组相关的信息. 1 什么是消费者组 在某些问题中,我们想要做 ...

  4. 你还不了解Redis的发布/订阅功能与Redis的Stream吗

    一.Redis 中的发布/订阅功能 发布/ 订阅系统 是 Web 系统中比较常用的一个功能.简单点说就是 发布者发布消息,订阅者接受消息,这有点类似于我们的报纸/ 杂志社之类的: (借用前边的一张图) ...

  5. redis stream持久化_Beetlex.Redis之Stream功能详解

    原标题:Beetlex.Redis之Stream功能详解 有一段时间没有写文章,techempower的测试规则评分竟然发生了变化,只能忘着补充一下占比权重最多的数据更新示例了和深入设计一下组件模块化 ...

  6. Redis进阶-Stream多播的可持久化的消息队列

    文章目录 Pre Stream简介 Stream特性 消息 ID 消息内容 命令预览 独立消费 创建消费组 消费 Stream 消息积压怎么处理 消息如果忘记 ACK 会怎样? PEL 如何避免消息丢 ...

  7. Beetlex.Redis之Stream功能详解

    有一段时间没有写文章,techempower的测试规则评分竟然发生了变化,只能忘着补充一下占比权重最多的数据更新示例了和深入设计一下组件模块化加载的设计.但在不久前有用户问了一下组件是否支持redis ...

  8. Kafka——创建无消费者组的消费者消费订阅主题

    前景 最近在编写了一个websocket+kafka的推送订阅组件,类似之前的一篇wesocket+redis的推送订阅组件. 期间遇到了两个问题. 不停地组平衡 由于每次订阅不同的主题都会去生成一个 ...

  9. Kafka复习计划 - 客户端实践及原理(消费者组/位移/请求处理过程)

    Kafka复习计划 - 客户端实践及原理(消费者组/位移/请求处理过程) 前言 一. 消费组 1.1 Rebalance 重平衡 1.2 Coordinator 协调者 1.3 如何尽量避免消费者组重 ...

最新文章

  1. 2021年大数据ELK(四):Lucene的美文搜索案例
  2. SAP MM PO Item Category 内部code的用处?
  3. Linux学习路径(小白必看)
  4. 线程与进程的区别_Java线程和PC进程的区别
  5. 用台球杆击球,这个击球力道能传递到10米之外的球上吗?
  6. js setTimeout和setInterval区别
  7. 华为云ROMA,联接企业应用的现在与未来
  8. 02-01 Python 安装与pip
  9. ~~单链表(数据结构)
  10. DCOM 遇到错误“登录失败: 未知的用户名或错误密码
  11. robbe+base64+Mysql简易有效的php全文索引实现
  12. eNSP模拟器中 FTP 实验
  13. 想做影视“化妆师”,首先要知道影视后期调色的8个基本步骤!
  14. 激活函数:双曲正切函数 tanh(x)
  15. mysql数据库存图片名_【mysql】数据库存图片,是存图片名称?还是存图片路径??...
  16. CSDN里的文章去广告、打印成PDF__小胡亲测
  17. delphi中pos的用法
  18. notability整理归档_【干货整理】巧妙使用Notability,期末GPA可以4.0!
  19. Async 异步转同步
  20. Spark-RDD实战影评数据分析一

热门文章

  1. CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)
  2. POJ - 1958 Strange Towers of Hanoi(线性dp)
  3. CH - 4901 关押罪犯(二分图判定+二分/并查集)
  4. 2019ICPC(南京) - Holy Grail(最短路)
  5. 数据模型与决策_数据模型与决策复习资料拿走不用客气
  6. 图书管理系统c++_校园图书系统写后感
  7. 下图为双总线结构机器的数据通路_PDPS机器人虚拟调试 弧焊仿真 第一课 弧焊项目创建...
  8. [luogu2042] [NOI2005]维护数列
  9. [luoguP4705]玩游戏
  10. delphi中的第三方控件如何安装