惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
I
InfoQ
H
Help Net Security
GbyAI
GbyAI
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
Y
Y Combinator Blog
L
LangChain Blog
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
博客园 - Franky
D
Docker
Jina AI
Jina AI
罗磊的独立博客

博客园 - delphi中间件

delphi 面向模型编程 array of TVarRec core.recordModel.pas 使用泛型序列结构体 DDD建模指导 rabbitMQ VS mqtt redis流的应用场景 redis消费者组 领域服务与领域事件 业务规则和模型 限界上下文与统一语言 领域驱动 mqtt即时通讯 ActiveRecord ORM RAD(速成应用开发) unigui插件框架 工厂流水线式自动生产UNIGUI WEB软件 delphi cs\web一种统一的界面风格 - delphi中间件 - 博客园 动态生成unidbgrid 单据工厂 用json元数据填充模板 mormot2 ORM rest vs jsonrpc SSE技术详解:使用 HTTP 做服务端数据推送应用的技术 http持久连接 json-rpc 2.0 MCP服务器 RTTI对性能的影响 频繁地创建和销毁对象 TMultiPartFormData
redis流的操作命令
delphi中间件 · 2026-07-27 · via 博客园 - delphi中间件

XADD命令将消息发布到流中,然后使用XREAD命令从流中获取消息。
生产者使用XADD将任务发布到流中,而消费者使用XREAD来获取并处理任务。
消费者可以使用消费组(Consumer Group)来协作地消费消息,确保消息只被一个消费者处理。

Redis的流数据结构是持久性的,事件不会在写入后立即删除。你可以配置流的最大长度,以控制存储事件的数量,超出最大长度后的事件将被删除。
流的数据可以在Redis重启后仍然保持。

XADD mqstream * repo 5
这句命令意思是往名称为mqstream的消息队列中插入一条消息,消息的键是repo,值是5,其中,消息队列名称后面的*,表示让redis为插入的数据自动生成一个全局唯一的ID

XREAD BLOCK 100 STREAMS mqstream 1599203861727-0
当消费者需要读取消息时,可以直接使用XREAD命令从消息队列中读取。XREAD在读取消息时,可以指定一个消息ID,并从这个消息ID的下一条消息开始进行读取。另外在调用XREAD是设定block配置项实现类似于BRPOP的阻塞读取操作。当消息队列中没有消息时,一旦设置了block配置项,XREAD就会阻塞,阻塞时长可以在block配置项进行设置

XREAD block 10000 streams mqstream $
命令最后的$符号表示读取最新的消息,同时,我们设置了block 10000的配置项,10000的单位是毫秒,表明XREAD在读取最新消息时,如果没有消息到来,XREAD将阻塞10000毫秒,然后再返回。

XGROUP create mqstream group1 0
XREADGROUP group group1 consumer1 streams mqstream >
命令最后的参数">"表示从第一条尚未被消费的消息开始读取。因为在consumer1读取消息前,group1中没有其他消费者读取过消息,所以,consumer1就得到mqstream消息队列中的所有消息了。
其中如果消息队列中的消息,被消费者组里的消费者读取了,就不能再被该消费组内的其他消费者读取了。之所以我们使用消费者组,是为了多个消费者共同分担读取消息,让group2中的consumer1、2、3各自读取一条消息。

XPENDING mqstream group2
查看某一个消费者具体读取了哪些数据
XPENDING mqstream group2 - + 10 consumer2
XACK mqstream group2 1599274912765-0
XPENDING命令可以用来查询每个消费组内所有消费者已读取但尚未确认的消息,而XACK命令用于向消息队列确认消息处理已完成。