我刚刚开始使用Predis进行Redis迁移,但是我无法使用zadd函数来处理数组.
此代码有效:
foreach ($userIndexArr as $row) {
$usernames[] = 0;
$usernames[] = $row['username'];
$result = $this->cache->zadd('@person', 0, $row['username']);
}
这不是:
foreach ($userIndexArr as $row) {
$usernames[] = 0;
$usernames[] = $row['username'];
}
try {
$result = $this->cache->zadd('@person', $usernames);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
并且不会抛出任何错误.任何帮助深表感谢!
-J
解决方法:
我玩弄了这个,如果你正在努力解决这个问题,下面的例子一定会有所帮助(遵循redis.io documents示例):
$predis->zadd( 'myset', [ "one" => 1, "uno" => 1, "two" => 2, "three" => 3 ] )
这将导致与redis’示例相同的排序集:
ZADD myzset 1 "one"
ZADD myzset 1 "uno"
ZADD myzset 2 "two" 3 "three"
如果你想在Redis的一行中做到这一点,你会把分数放在第一位,如下所示:
ZADD myzset 1 "one" 1 "uno" 2 "two" 3 "three"
在Predis中,这也可行:
$predis->zadd( 'myset', 1, "one", 1, "uno", 2, "two", 3, "three" );