java redis zadd 批量_php使用redis有序列表zadd批量添加的方法

本文介绍了如何在PHP中使用Redis的ZADD命令批量添加有序集合的元素。通过`call_user_func_array`函数结合Redis的PHP客户端库,可以实现类似`ZADD 'key' 0 'we' 2 'me' 3 'td' 8 'go'`这样的批量插入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 添加单个元素

redis> ZADD page_rank 10 google.com

(integer) 1

# 添加多个元素

redis> ZADD page_rank 9 baidu.com 8 bing.com

(integer) 2

redis> ZRANGE page_rank 0 -1 WITHSCORES

1) "bing.com"

2) "8"

3) "baidu.com"

4) "9"

5) "google.com"

6) "10"

上面是Redis 手册提到的单个和批量添加的方法,如何使用到PHP中呢?

private function distributeKeys() {

// strings

foreach($this->strings as $k => $v) {

$this->ra->set($k, $v);

}

// sets

foreach($this->sets as $k => $v) {

call_user_func_array(array($this->ra, 'sadd'), array_merge(array($k), $v));

}

// lists

foreach($this->lists as $k => $v) {

call_user_func_array(array($this->ra, 'rpush'), array_merge(array($k), $v));

}

// hashes

foreach($this->hashes as $k => $v) {

$this->ra->hmset($k, $v);

}

// sorted sets

foreach($this->zsets as $k => $v) {

call_user_func_array(array($this->ra, 'zadd'), array_merge(array($k), $v));

}

//注意上面的代码

}

上面是php-redis项目源代码中的一个测试文件写到的【参见github】

所以,PHP使用zadd批量添加的方法可以这样写

call_user_func_array(array($this->redis, 'zadd'), array('key', 0, 'we', 2, 'me', 3, 'td', 8, 'go'));

//array第一项是这个有序列表的键,后续的项目是排序权重,和值的交替

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值