需要重新定义普雷迪斯"ERR syntax error"



我做了一个基于Predis、PHP、Redis的后端应用程序。本地开发是用Redis 6.x完成的,效果很好。此代码用于将其他执行代码中的消息记录到远程Redis服务器,工作人员将在那里使用流数据并将其移动到MySQL中进行长期存储。

将代码移到我们的开发服务器中进行测试;ERR语法错误";。经过一番挖掘,我发现dev正在运行Redis 5.x。所以我们升级到Redis 7.x。代码仍然报告相同的错误。我最终更改了代码以使用不同的Redis命令,它在发送时起作用

/**
* return data on the status of streams
*
* @return array
*/
public function findPending() {
// XPENDING hubCurlLog hubCurlLog-group IDLE 9000 - + 1  hubCurlLog-group_1
$command = ['XPENDING', $this->stream_name, $this->stream_group_name, 'IDLE', 9000, '-', '+', 1, $this->consumer_name];
return $this->redis_client->executeRaw($command);
}

上面的函数将产生类似的Redis命令

XPENDING hubCurlLog hubCurlLog-group IDLE 9000 - + 1 hubCurlLog-group_1

这就是我得到ERR语法错误的地方

如果我在cli中运行Redis命令,我仍然会收到同样的错误,但在输入命令时,我确实看到了已知的提示。redis-cli命令提示

我该如何克服这个语法问题?

我发现了一个看起来可以工作的解决方案,我删除了IDLE和时间

来自

XPENDING hubCurlLog hubCurlLog组IDLE 9000-+1 hubCurlLog-group_1

XPENDING hubCurlLog hubCurlLog-group_1

最新更新