您的位置:首页 > 数据库 > Redis

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

2015-07-06 00:00 756 查看
# 添加单个元素

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第一项是这个有序列表的键,后续的项目是排序权重,和值的交替
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: