(error) ERR Unknown subcommand or wrong number of arguments for 'CREATE'. Try XGROUP HELP

2024-07-31 09:43:14 浏览数 (2)

原因:执行完之后 报错:127.0.0.1:6379> XGROUP CREATE --mkstream stream.orders g1 0 (error) ERR Unknown subcommand or wrong number of arguments for 'CREATE'. Try XGROUP HELP.

看起来您尝试使用的命令语法不符合 Redis 的要求。XGROUP CREATE​ 命令的语法应该是这样的:

代码语言:javascript复制
XGROUP CREATE key groupname id [MKSTREAM]

根据您提供的错误信息 (error) ERR Unknown subcommand or wrong number of arguments for 'CREATE'. Try XGROUP HELP.​,这表明 Redis 服务器无法识别 --mkstream​ 选项。这通常意味着您的 Redis 版本不支持这个选项。

解决方案

方法 1: 使用 XADD​ 创建流

如果您不能升级到支持 MKSTREAM​ 的 Redis 版本,您可以先使用 XADD​ 命令创建一个空的流,然后使用 XGROUP CREATE​ 命令创建消费者组。

使用 XADD​ 命令创建一个空的流:

代码语言:javascript复制
XADD stream.orders * somefield somevalue

使用 XGROUP CREATE​ 命令创建消费者组:

代码语言:javascript复制
XGROUP CREATE stream.orders g1 0

删除用于初始化流的消息(可选):

代码语言:javascript复制
XDEL stream.orders 1

这里假设流中只有一个消息,其 ID 为 1​。

方法 2: 升级 Redis 版本

如果您可以升级 Redis 版本,建议升级到至少 Redis 6.0,这样就可以直接使用 MKSTREAM​ 选项。升级后,您可以使用正确的命令格式:

代码语言:javascript复制
XGROUP CREATE --mkstream stream.orders g1 0

检查 Redis 版本

在尝试上述解决方案之前,请确保您知道正在使用的 Redis 版本。您可以通过运行以下命令来查看 Redis 的版本:

代码语言:javascript复制
INFO server

在返回的信息中查找 redis_version​ 字段以确认版本号。

0 人点赞