问题标签 [redis-streams]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
redis - 计算或列出 redis 流中的所有 ACKnowledged 消息
xlen
我知道我可以使用or获得流的总长度xinfo stream mystream full.
我也明白我可以xpending
用来获取待处理队列的长度,即尚未确认的项目。
有没有命令给我/已经/被ack
'd的项目的计数或身份?(除了假设xlen
- len(xpending)
= len(unackd)
?)
redis - 我们可以在 Redis 流中确认一系列条目(或早于某个 id 的条目)吗?
是否可以根据一系列 ID 确认 redis 流中的多个条目?我特别感兴趣的是在某个 ID 之前确认所有内容,而不是一一确认。
或者,是否可以只读取 ID 大于最后确认 ID 的条目?
node.js - 将对象解包为可选参数
我以 Redis 的XADD
命令为例。我试图让我的write
函数将不同长度的对象写入 redis 流。
最初,in 中的命令redis-cli
如下所示:
XADD streamName objectId key1 val1 key2 val2 ...
在 NodeJS 中:
我试图用一种更简单的方法来包装它:
如何在 NodeJS 中将对象解包为函数的可选参数?
node.js - Redis Streams:如何管理永久订阅和 BLOCK 行为?
我在 Express 应用程序中使用 Redis。我的应用程序既是流的发布者又是消费者,使用单个 redis 连接 (redis.createClient)。我对管理永久订阅(使用 xreadgroup)的最佳方式有疑问。目前我正在这样做:
wherexreadgroup
只是 node-redis' 的一个承诺版本xreadgroup
。
我的问题 - BLOCK 的适当用法是什么?如果我无限期或长时间阻止,那么我的客户xadd
在解除阻止或阻止超时之前无法发布任何消息(带有 )。由于我必须使用某种循环/递归来继续阅读事件,BLOCK
因此似乎没有必要;我可以把它关掉吗?这是预期的用途吗?
同样,使用 setImmeadiate 是否合适,还是首选 process.nextTick 或异步循环?
node-redis 中的文档很少,少数示例只是在阻塞后读取消息一次,并且不在同一个客户端上生成/使用。
java - Redis 消费者无法消费特定事件
我在一个 Spring Boot 项目中有一个生产者,它为同一个 Redis 消费者组和一个消费者(另一个 Spring Boot 项目)产生两个事件,消费相同。redis 消费者只能消费一种类型的事件。我在使用第二种类型的事件时看到以下异常:-
消费者弹簧应用程序中出现的异常:-
Redis 流任务:-
第一次春季申请的制片人:-
第二次春季申请中的消费者:-
如果需要任何其他信息,请告诉我。任何有关如何解决此问题的帮助将不胜感激!
redis - Redis 流:组/消费者命名和清理
我有一个相当原始的流用例:多个生产者和 1 个消费者定期批量处理消息。有时会有超过 1 个消费者,这就是为什么我想从“传统”不可靠队列 (rpush/lrange/ltrim) 切换到流。
实际上有2个相关问题:
使用 Redis 消费者组时,我必须指定组名和消费者名。使用一些硬编码字符串作为组名和一些随机字符串作为消费者名称,这是个好主意吗?消费者只是 1 个进程,在这种情况下,它的名称在每次启动时都会有所不同。在极少数情况下,一次会有 2 个或更多消费者。
必须先创建消费者组,
xgroup create
然后才能xreadgroup
从中创建。每次新的消费者启动(使用随机名称)时,它都会被添加到消费者列表中,但即使在进程终止后它仍然存在。我的理解是,在这种情况下,我需要将所有来自死亡消费者的待处理消息重新分配给活动消费者,然后删除旧消费者。它是否正确?
redis - redis-graph 和 redis-streams 之间的互操作性
我对这个项目很感兴趣,想了解更多关于 RedisGraph 的内部结构,并寻找 Redis-Streams 和 Redis-Graph 模块之间互操作性的可行性。
因此,我想知道 Redis 的本机数据结构是什么,您构建了自己的“graphdata”数据结构,当我们运行 TYPE myGraph 命令时会显示该数据结构。
- RedisGraph 模块内部的图(或其子组件、节点、边、路径)是建立在 Redis 的已知数据结构之上的,例如 SETS、LISTS 等。
- 或者 RedisGraph 在其模块中使用原生的新数据结构。提前感谢您的回答和支持!
apache-camel - 骆驼对 Redis 流的支持
我想检查一下 Camel 是否特别支持 Redis Streams。我知道它也支持 Redis 作为 DB 和 pub-sub。如果是这样,它是否需要任何特定的 API?任何帮助是极大的赞赏。
redis - Redis Capped 流未修剪超过阈值
我正在研究 redis 流数据类型并尝试使用具有 ~ 精度的封顶流,这表示它可能还有几十个条目,这很好,但我发现流根本没有被封顶,它们继续增长两倍或指定阈值的三倍。
我正在执行以下命令:
我看到流在 150 个元素后增长了三倍,我做错了什么?除了这个命令之外,没有别的东西在运行。
redis - 阻塞直到完成计数
我正在使用 Redis 流,需要阻止我的客户端,直到流中至少有 X 条消息并在达到 X 计数时返回。有没有办法实现这一点?
EG:XREADGROUP GROUP G1 C2 COUNT 10 BLOCK 0 STREAMS L >
直到所有 10 条消息都到达流键