PHP如何向Redis list一次性PUSH多个值

100人浏览   2025-03-05 00:22:04

php通过redis扩展,使用rPush、lPush方法向redis list投递值。但是如果要投递的是一个数组,多个值怎么处理呢?

提供三种方案……,只要做出来就是好样的,是的只要能逮住耗子的就是好猫!

方案一

秒想做法,直接foreach循环搞定,简单粗暴!

$ids = $this->getArticleIds();
$redis = instanceRedis();
foreach ($ids as $v) {
    $redis->rPush('key-key-key',$v); 
}

方案二

利用 call_user_func_array 可以使用数组来当参数列表的特性,在写法上不比foreach简单多少。不过此函数的特性还是需要了解一下。万一以后有业务需要用到!

$ids = $this->getArticleIds();
$redis = instanceRedis();
$ids = array_merge(['key-key-key',$ids]);
call_user_func_array([$redis, 'rPush'], $ids);

方案三

php5.6+ 支持的可变参数,在数组前加 '...' 实现把数组当作函数的参数列表,这个特性如果你不了解打死也不知道还能这样用。

$ids = $this->getArticleIds();
$redis = instanceRedis();
$redis->rPush('key-key-key',...$ids); 


相关推荐