gpt4 book ai didi

php - 在 laravel redis 中设置 ZADD 命令的选项

转载 作者:可可西里 更新时间:2023-11-01 11:13:28 26 4
gpt4 key购买 nike

我正在尝试使用 laravel redis 为 ZADD 设置选项,但失败了。

我需要设置的选项是NX,如文档中所述:

ZADD options (Redis 3.0.2 or greater)

ZADD supports a list of options, specified after the name of the key and before the first score argument.

所以我是这样写的:

$this->redis->zAdd('orderIDs:' . $category, 'NX',[$orderId => $timestamp[1]]);

我得到的错误信息是

PHP warning: strlen() expects parameter 1 to be string, array given in /RediMail/vendor/predis/predis/src/Connection/StreamConnection.php on line 270

我也尝试过使用 put 'NX' 到其他位置,但 laravel 似乎不喜欢为 ZADD 使用选项的想法。

有没有办法用 laravel 做到这一点,或者我需要使用另一种方法来设置我的带选项的排序集吗?

我正在使用 Redis 3.0.2。

来自 predis/predis:

    class ZSetAdd extends Command
{
/**
* {@inheritdoc}
*/
public function getId()
{
return 'ZADD';
}
/**
* {@inheritdoc}
*/
protected function filterArguments(array $arguments)
{
if (count($arguments) === 2 && is_array($arguments[1])) {
$flattened = array($arguments[0]);
foreach ($arguments[1] as $member => $score) {
$flattened[] = $score;
$flattened[] = $member;
}
return $flattened;
}
return $arguments;
}
}

看起来 predis 没有接受选项,还是我遗漏了什么?

最佳答案

在 Predis 的 zAdd 方法更新以支持 Redis v3.0.2 中的更改之前,您最好的选择是探索 RawCommand 的精彩世界:https://github.com/nrk/predis/blob/master/src/Command/RawCommand.php

它应该让您构建自己的命令,包括 ZADD NX ... 变体。

关于php - 在 laravel redis 中设置 ZADD 命令的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30834274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com