php對redis的list(列表)操做

<?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個名稱爲keylist中值爲value的元素。count0,刪除全部值爲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);
       }
   }

   /**
    * 返回並刪除名稱爲$key1list的尾元素,並將該元素添加到名稱爲$key2list的頭部
    *
    * @param $key1 list
    * @param $key2 list
    * @return string
    */
   public function rpoplpush($key1,$key2){

       return $this->redis->rpoplpush($key1,$key2);
   }

}
相關文章
相關標籤/搜索