如何检查Redis中已经存在的消费群体?

问题描述

当前,我正在寻找宽松的解决方案,以检查Redis流中的消费者组是否已经存在。

我有一些模块可以连接到相同的流并从中读取数据。但是它们可以以不同的顺序启动,并且在未创建消费者组的情况下-尝试创建它。 如果第一个模块创建了组,则其他模块会根据文档显示错误

从文档中:

如果指定的使用者组已经存在,该命令将返回-BUSYGROUP错误

我想避免这个错误

我使用Jedis客户端与Redis一起工作。 我知道有XINFO命令(可以返回组列表),但是在集群模式下启动Redis(它可以是我的配置之一)时,它不起作用。

解决方法

别无他法,因为您已经回答了问题,有两种选择:

  1. XGROUP CREATE,并在该组已经存在的情况下捕获错误。
  2. XINFO STREAM并查找组,但这并不是原子的,创建并行组可能会在您获取信息后立即调用。