【发布时间】:2018-01-14 01:34:31
【问题描述】:
我正在使用 Redis for PHP。
我需要检查该键是否存在于redis列表中,如果不存在,则添加它。现在我的代码如下所示:
$redis = Redis::connection();
$redis->pipeline(function($pipe) use ($type, $redis)
{
$list = $pipe->lRange($type.'_unique_list', 0, -1);
if(!in_array($this->uid, $list)) {
$pipe->rPush($type . '_unique_list', $this->uid);
}
});
问题是$list取自$pipe返回Redis对象,而不是数组,in_array不起作用。但是如果我使用$redis->lRange,脚本就会变得太慢。
所以我的问题是,是否有可能检查密钥是否存在于 Redis 列表中而不检索列表到脚本中?一些我在文档中找不到的特殊 Redis 命令?或者我可以在这种特殊情况下用其他东西替换in_array?
【问题讨论】:
-
$list是对象还是对象数组?指定。更好地展示var_dump($list);