问题标签 [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.

0 投票
1 回答
869 浏览

redis - 计算或列出 redis 流中的所有 ACKnowledged 消息

xlen我知道我可以使用or获得流的总长度xinfo stream mystream full.

我也明白我可以xpending用来获取待处理队列的长度,即尚未确认的项目。

有没有命令给我/已经/被ack'd的项目的计数或身份?(除了假设xlen- len(xpending)= len(unackd)?)

0 投票
1 回答
195 浏览

redis - 我们可以在 Redis 流中确认一系列条目(或早于某个 id 的条目)吗?

是否可以根据一系列 ID 确认 redis 流中的多个条目?我特别感兴趣的是在某个 ID 之前确认所有内容,而不是一一确认。

或者,是否可以只读取 ID 大于最后确认 ID 的条目?

0 投票
1 回答
106 浏览

node.js - 将对象解包为可选参数

我以 Redis 的XADD命令为例。我试图让我的write函数将不同长度的对象写入 redis 流。

最初,in 中的命令redis-cli如下所示: XADD streamName objectId key1 val1 key2 val2 ...

在 NodeJS 中:

我试图用一种更简单的方法来包装它:

如何在 NodeJS 中将对象解包为函数的可选参数?

0 投票
1 回答
415 浏览

node.js - Redis Streams:如何管理永久订阅和 BLOCK 行为?

我在 Express 应用程序中使用 Redis。我的应用程序既是流的发布者又是消费者,使用单个 redis 连接 (redis.createClient)。我对管理永久订阅(使用 xreadgroup)的最佳方式有疑问。目前我正在这样做:

wherexreadgroup只是 node-redis' 的一个承诺版本xreadgroup

我的问题 - BLOCK 的适当用法是什么?如果我无限期或长时间阻止,那么我的客户xadd在解除阻止或阻止超时之前无法发布任何消息(带有 )。由于我必须使用某种循环/递归来继续阅读事件,BLOCK因此似乎没有必要;我可以把它关掉吗?这是预期的用途吗?

同样,使用 setImmeadiate 是否合适,还是首选 process.nextTick 或异步循环?

node-redis 中的文档很少,少数示例只是在阻塞后读取消息一次,并且不在同一个客户端上生成/使用。

0 投票
1 回答
396 浏览

java - Redis 消费者无法消费特定事件

我在一个 Spring Boot 项目中有一个生产者,它为同一个 Redis 消费者组和一个消费者(另一个 Spring Boot 项目)产生两个事件,消费相同。redis 消费者只能消费一种类型的事件。我在使用第二种类型的事件时看到以下异常:-

消费者弹簧应用程序中出现的异常:-

Redis 流任务:-

第一次春季申请的制片人:-

第二次春季申请中的消费者:-

如果需要任何其他信息,请告诉我。任何有关如何解决此问题的帮助将不胜感激!

0 投票
1 回答
824 浏览

redis - Redis 流:组/消费者命名和清理

我有一个相当原始的流用例:多个生产者和 1 个消费者定期批量处理消息。有时会有超过 1 个消费者,这就是为什么我想从“传统”不可靠队列 (rpush/lrange/ltrim) 切换到流。

实际上有2个相关问题:

  1. 使用 Redis 消费者组时,我必须指定组名和消费者名。使用一些硬编码字符串作为组名和一些随机字符串作为消费者名称,这是个好主意吗?消费者只是 1 个进程,在这种情况下,它的名称在每次启动时都会有所不同。在极少数情况下,一次会有 2 个或更多消费者。

  2. 必须先创建消费者组,xgroup create然后才能xreadgroup从中创建。每次新的消费者启动(使用随机名称)时,它都会被添加到消费者列表中,但即使在进程终止后它仍然存在。我的理解是,在这种情况下,我需要将所有来自死亡消费者的待处理消息重新分配给活动消费者,然后删​​除旧消费者。它是否正确?

0 投票
1 回答
215 浏览

redis - redis-graph 和 redis-streams 之间的互操作性

我对这个项目很感兴趣,想了解更多关于 RedisGraph 的内部结构,并寻找 Redis-Streams 和 Redis-Graph 模块之间互操作性的可行性。

因此,我想知道 Redis 的本机数据结构是什么,您构建了自己的“graphdata”数据结构,当我们运行 TYPE myGraph 命令时会显示该数据结构。

  • RedisGraph 模块内部的图(或其子组件、节点、边、路径)是建立在 Redis 的已知数据结构之上的,例如 SETS、LISTS 等。
  • 或者 RedisGraph 在其模块中使用原生的新数据结构。提前感谢您的回答和支持!
0 投票
0 回答
74 浏览

apache-camel - 骆驼对 Redis 流的支持

我想检查一下 Camel 是否特别支持 Redis Streams。我知道它也支持 Redis 作为 DB 和 pub-sub。如果是这样,它是否需要任何特定的 API?任何帮助是极大的赞赏。

0 投票
0 回答
174 浏览

redis - Redis Capped 流未修剪超过阈值

我正在研究 redis 流数据类型并尝试使用具有 ~ 精度的封顶流,这表示它可能还有几十个条目,这很好,但我发现流根本没有被封顶,它们继续增长两倍或指定阈值的三倍。

我正在执行以下命令:

我看到流在 150 个元素后增长了三倍,我做错了什么?除了这个命令之外,没有别的东西在运行。

0 投票
1 回答
178 浏览

redis - 阻塞直到完成计数

我正在使用 Redis 流,需要阻止我的客户端,直到流中至少有 X 条消息并在达到 X 计数时返回。有没有办法实现这一点?

EG:XREADGROUP GROUP G1 C2 COUNT 10 BLOCK 0 STREAMS L >直到所有 10 条消息都到达流键