<?php
require('redistest.php');
class listcache extends cache{
public function __construct(){
parent::__construct();
}
/**
* 向列表的左邊添加元素,返回值表示添加元素後列表的長度
*
* @param $key string
* @param $value string
* @return int
*/
public function lpush($key,$value){
return $this->redis->lPush($key,$value);
}
/**
* 向列表的右邊添加元素,返回值表示添加元素後列表的長度
*
* @param $key string
* @param $value string
* @return mixed int
*/
public function rpush($key,$value){
return $this->redis->rPush($key,$value);
}
public function lpushx($key,$value){
return $this->redis->lPushx($key,$value);
}
public function rpushx($key,$value){
return $this->redis->rPushx($key,$value);
}
/**
* 從列表左邊彈出一個元素,1、將列表左邊元素從列表中移除,2、返回被移除的元素值
* (刪除操做)
* @param $key string
* @return string
*/
public function lPop($key){
return $this->redis->lPop($key);
}
/**
* 從列表右邊彈出一個元素
*
* @param $key string
* @return string
*/
public function rPop($key){
return $this->redis->rPop($key);
}
//$redis->blPop('key1', 'key2', 10);
/**
* 返回列表中元素的個數
*
* @param $key string
* @return int
*/
public function lSize($key){
return $this->redis->lSize($key);
}
/**
* 獲取列表中指定位置的值
*
* @param $key
* @return mixed
*/
public function lGet($key,$location=0){
return $this->redis->lGet($key,$location);
}
/**
* 給元素指定位置賦相應的值
* @param $key string
* @param $location int
* @param $value string
* @return bool true|false
*/
public function lSet($key,$location,$value){
return $this->redis->lSet($key,$location,$value);
}
/**
* 獲取列表的片斷
* @param $key string 鍵名
* @param $start int
* @param $end int (-1表示返回全部)
* @return array
*/
public function lRange($key,$start,$end){
return $this->redis->lRange($key,$start,$end);
}
/**
* 只保留列表指定的片斷
*
* @param $key string
* @param $start int
* @param $end int
* @return bool true|false
*/
public function lTrim($key,$start,$end){
return $this->redis->lTrim($key,$start,$end);
}
/**
* 刪除count個名稱爲key的list中值爲value的元素。count爲0,刪除全部值爲value的元素,
* count>0從頭到尾刪除count個值爲value的元素,count<0從尾到頭刪除|count|個值爲value的元素
*
* @param $key
* @param $value
* @param $count
* @return mixed
*/
public function lRem($key,$value,$count){
return $this->redis->lRem($key,$value,$count);
}
/**
* LINSERT命令首先會在列表中從左到右查找值爲pivot的元素,而後根據第二個參數是
* BEFORE仍是AFTER來決定將value插入到該元素的前面仍是後面。
*
* @param $key string 列表名字
* @param $pivot string 所要查找的值
* @param $value 要插入的值
* @param int $dirct 0表示前面,1表示後面
* @return int 返回插入後列表的個數
*/
public function lInsert($key,$pivot,$value,$dirct=0){
if($dirct==0){
return $this->redis->lInsert($key,Redis::BEFORE,$pivot,$value);
}elseif($dirct==1){
return $this->redis->lInsert($key,Redis::AFTER,$pivot,$value);
}
}
/**
* 返回並刪除名稱爲$key1的list的尾元素,並將該元素添加到名稱爲$key2的list的頭部
*
* @param $key1 list
* @param $key2 list
* @return string
*/
public function rpoplpush($key1,$key2){
return $this->redis->rpoplpush($key1,$key2);
}
}