<?php
require('redistest.php');
class zsetcache extends cache{
/**
*向名稱爲key的zset中添加元素member,score用亍排序。若是該元素已經存在,則根據score更新該元素的順序。
*ZADD命令的返回值是新加入到集合中的元素個數
*
* @param $key string 集合名稱
* @param $score int 分數
* @param $member string 值
* @return int 返回插入的個數
*/
public function zAdd($key,$score,$member){
return $this->redis->zAdd($key,$score,$member);
}
/**
* 返回名稱爲key的zset(元素已按score從小到大排序)中的index從start到end的全部元素
* ZRANGE命令會按照元素分數從小到大的順序返回索引從start到stop之間的全部元素(包
* 含兩端的元素)。ZRANGE命令與LRANGE命令十分類似,如索引都是從0開始,負數表明從後
* 向前查找(-1表示最後一個元素)
*
* @param $key string 集合名稱
* @param $start int 開始
* @param $end int 結束
* @param bool $withscores 是否查找分數
* @return array 返回集合的的數組
*/
public function zRange($key,$start,$end,$withscores=False){
if($withscores){
return $this->redis->zRange($key,$start,$end,true);
}else{
return $this->redis->zRange($key,$start,$end);
}
}
/**
* 刪除名稱爲key的zset中的元素member,返回刪除的個數
*做用同zDelete
*
* @param $key string 集合
* @param $member string 元素
* @return int 刪除的個數
*/
public function zRem($key,$member){
return $this->redis->zRem($key,$member);
}
/**
* 與zRange功能同樣,只是zRevRange返回的元素是按score從大到小排序的
*
* @param $key string 集合名稱
* @param $start int 開始
* @param $end int 結束
* @param bool $withscores 是否查找分數
* @return array 返回集合的的數組
*/
public function zRevRange($key,$start,$end,$withscores=False){
if($withscores){
return $this->redis->zRevRange($key,$start,$end,true);
}else{
return $this->redis->zRevRange($key,$start,$end);
}
}
/**
* @param $key string 集合名稱
* @param $start int 開始
* @param $end int 結束
* @param $limit
* @param bool|False $withscores 是否查找分數
* @return mixed
*/
public function zRangeByScore($key,$start,$end,$limit,$withscores=False){
if($withscores){
return $this->redis->zRangeByScore($key,$start,$end,array('$withscores'=>TRUE,'limit'=>$limit));
}else{
return $this->redis->zRangeByScore($key,$start,$end,array('limit'=>$limit));
}
}
/**
* 返回名稱爲key的zset中score >= star且score <= end的全部元素的個數
*
* @param $key string 集合名稱
* @param $start int 開始
* @param $end int 結束
* @return int
*/
public function zCount($key,$start,$end){
return $this->redis->zCount($key,$start,$end);
}
/**
*刪除名稱爲key的zset中score >= star且score <= end的全部元素,返回刪除個數
*
* @param $key string 集合名稱
* @param $start int 開始
* @param $end int 結束
* @return int
*/
public function zRemRangeByScore($key,$start,$end){
return $this->redis->zRemRangeByScore($key,$start,$end);
}
/**
* 返回名稱爲key的zset的全部元素的個數
* 做用同zCard
* @param $key 集合名稱
* @return Int 返回個數
*/
public function zSize($key){
return $this->redis->zSize($key);
}
/**
* 返回集合key中元素member的分數
*
* @param $key string 集合
* @param $member string 元素
* @return float|bool 分數(若是不存在就返回false)
*/
public function zScore($key,$member){
return $this->redis->zScore($key,$member);
}
/**
*返回名稱爲key的zset(元素已按score從小到大排序)中val元素的rank(即index,從0開始),若沒有val元素,返回「0」。
* 就是返回比元素$member分數小的元素的個數
*
* @param $key string 集合
* @param $member string 元素
* @return int
*/
public function zRank($key,$member){
return $this->redis->zRank($key,$member);
}
/**
* 就是返回比元素$member分數大的元素的個數
* @param $key string 集合
* @param $member string 元素
* @return int
*/
public function zRevRank($key,$member){
return $this->redis->zRevRank($key,$member);
}
/**
* 若是在名稱爲key的zset中已經存在元素member,則該元素的score增長increment;不然向集合中添加該元素,其score的值爲increment
*
* @param $key 集合
* @param $increment 分數
* @param $member 元素
* @return int 增長的分數
*/
public function zIncrBy($key,$increment,$member){
return $this->redis->zIncrBy($key,$increment,$member);
}
/**
* 求有序集合的並集
*
* @param $output要保存的集合
* @param $zsetkey 求並集的集合
* @return int 集合的數目
*/
public function zUnion($output,$zsetkey){
return $this->redis->zUnion($output,$zsetkey);
}
/**
* 求有序集合的交集
*
* @param $output要保存的集合
* @param $zsetkey 求並集的集合
* @return int 集合的數目
*/
public function zInter($output,$zsetkey){
return $this->redis->zInter($output,$zsetkey);
}
}