Php 在laravel redis中设置ZADD命令的选项
我试图为ZADD和laravel redis设定选项,但失败了 我需要设置的选项是NX,如文档中所述: ZADD选项(Redis 3.0.2或更高版本) ZADD支持一个选项列表,在键名之后和第一个score参数之前指定 所以我这样写:Php 在laravel redis中设置ZADD命令的选项,php,laravel,redis,set,Php,Laravel,Redis,Set,我试图为ZADD和laravel redis设定选项,但失败了 我需要设置的选项是NX,如文档中所述: ZADD选项(Redis 3.0.2或更高版本) ZADD支持一个选项列表,在键名之后和第一个score参数之前指定 所以我这样写: $this->redis->zAdd('orderIDs:' . $category, 'NX',[$orderId => $timestamp[1]]); 我收到的错误消息是 PHP警告:strlen()要求参数1为字符串,数组给定 在/R
$this->redis->zAdd('orderIDs:' . $category, 'NX',[$orderId => $timestamp[1]]);
我收到的错误消息是
PHP警告:strlen()要求参数1为字符串,数组给定
在/RediMail/vendor/predis/predis/src/Connection/StreamConnection.php中
在线270
我也试着把“NX”放到其他位置,但拉威尔似乎不喜欢用选项来代替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
的奇妙世界:
它应该允许您构造自己的命令,包括zaddnx…
变量