我做了一个基于Predis,PHP,Redis的后端应用程序本地开发是用Redis 6.x完成的,运行得很好。这段代码用于将来自其他执行代码的消息记录到远程Redis服务器上,在那里工作人员将使用流数据并将其移动到MySQL中进行长期存储。
将代码移到我们的dev服务器进行测试,我开始收到“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 command hint
如何解决这个语法问题?
1条答案
按热度按时间eivgtgni1#
我找到了一个工作周围,看起来工作,我删除IDLE和时间
自
XPENDING集线器卷取日志集线器卷取日志组空闲9000 - + 1集线器卷取日志组_1
至
XPENDING集线器卷取日志集线器卷取日志组- + 1集线器卷取日志组_1