本文实例讲述了PHP实现的Redis操作通用类。分享给大家供大家参考,具体如下:

找到一个比较全的Redis PHP操作类库,分享给大家

<"+inf",$option=array())
  {
    return $this->redis->zRangeByScore($key,$start,$end,$option);
  }
  /**
   * 集合以order递减排列后,返回指定order之间的元素。
   * min和max可以是-inf和+inf 表示最大值,最小值
   * @param string $key
   * @param int $start
   * @param int $end
   * @package array $option 参数
   *   withscores=>true,表示数组下标为Order值,默认返回索引数组
   *   limit=>array(0,1) 表示从0开始,取一条记录。
   * @return array|bool
   */
  public function zRevRangeByScore($key,$start='-inf',$end="+inf",$option=array())
  {
    return $this->redis->zRevRangeByScore($key,$start,$end,$option);
  }
  /**
   * 返回order值在start end之间的数量
   * @param unknown $key
   * @param unknown $start
   * @param unknown $end
   */
  public function zCount($key,$start,$end)
  {
    return $this->redis->zCount($key,$start,$end);
  }
  /**
   * 返回值为value的order值
   * @param unknown $key
   * @param unknown $value
   */
  public function zScore($key,$value)
  {
    return $this->redis->zScore($key,$value);
  }
  /**
   * 返回集合以score递增加排序后,指定成员的排序号,从0开始。
   * @param unknown $key
   * @param unknown $value
   */
  public function zRank($key,$value)
  {
    return $this->redis->zRank($key,$value);
  }
  /**
   * 返回集合以score递增加排序后,指定成员的排序号,从0开始。
   * @param unknown $key
   * @param unknown $value
   */
  public function zRevRank($key,$value)
  {
    return $this->redis->zRevRank($key,$value);
  }
  /**
   * 删除集合中,score值在start end之间的元素 包括start end
   * min和max可以是-inf和+inf 表示最大值,最小值
   * @param unknown $key
   * @param unknown $start
   * @param unknown $end
   * @return 删除成员的数量。
   */
  public function zRemRangeByScore($key,$start,$end)
  {
    return $this->redis->zRemRangeByScore($key,$start,$end);
  }
  /**
   * 返回集合元素个数。
   * @param unknown $key
   */
  public function zCard($key)
  {
    return $this->redis->zCard($key);
  }
  /*********************队列操作命令************************/
  /**
   * 在队列尾部插入一个元素
   * @param unknown $key
   * @param unknown $value
   * 返回队列长度
   */
  public function rPush($key,$value)
  {
    return $this->redis->rPush($key,$value); 
  }
  /**
   * 在队列尾部插入一个元素 如果key不存在,什么也不做
   * @param unknown $key
   * @param unknown $value
   * 返回队列长度
   */
  public function rPushx($key,$value)
  {
    return $this->redis->rPushx($key,$value);
  }
  /**
   * 在队列头部插入一个元素
   * @param unknown $key
   * @param unknown $value
   * 返回队列长度
   */
  public function lPush($key,$value)
  {
    return $this->redis->lPush($key,$value);
  }
  /**
   * 在队列头插入一个元素 如果key不存在,什么也不做
   * @param unknown $key
   * @param unknown $value
   * 返回队列长度
   */
  public function lPushx($key,$value)
  {
    return $this->redis->lPushx($key,$value);
  }
  /**
   * 返回队列长度
   * @param unknown $key
   */
  public function lLen($key)
  {
    return $this->redis->lLen($key); 
  }
  /**
   * 返回队列指定区间的元素
   * @param unknown $key
   * @param unknown $start
   * @param unknown $end
   */
  public function lRange($key,$start,$end)
  {
    return $this->redis->lrange($key,$start,$end);
  }
  /**
   * 返回队列中指定索引的元素
   * @param unknown $key
   * @param unknown $index
   */
  public function lIndex($key,$index)
  {
    return $this->redis->lIndex($key,$index);
  }
  /**
   * 设定队列中指定index的值。
   * @param unknown $key
   * @param unknown $index
   * @param unknown $value
   */
  public function lSet($key,$index,$value)
  {
    return $this->redis->lSet($key,$index,$value);
  }
  /**
   * 删除值为vaule的count个元素
   * PHP-REDIS扩展的数据顺序与命令的顺序不太一样,不知道是不是bug
   * count>0 从尾部开始
   * >0 从头部开始
   * =0 删除全部
   * @param unknown $key
   * @param unknown $count
   * @param unknown $value
   */
  public function lRem($key,$count,$value)
  {
    return $this->redis->lRem($key,$value,$count);
  }
  /**
   * 删除并返回队列中的头元素。
   * @param unknown $key
   */
  public function lPop($key)
  {
    return $this->redis->lPop($key);
  }
  /**
   * 删除并返回队列中的尾元素
   * @param unknown $key
   */
  public function rPop($key)
  {
    return $this->redis->rPop($key);
  }
  /*************redis字符串操作命令*****************/
  /**
   * 设置一个key
   * @param unknown $key
   * @param unknown $value
   */
  public function set($key,$value)
  {
    return $this->redis->set($key,$value);
  }
  /**
   * 得到一个key
   * @param unknown $key
   */
  public function get($key)
  {
    return $this->redis->get($key);
  }
  /**
   * 设置一个有过期时间的key
   * @param unknown $key
   * @param unknown $expire
   * @param unknown $value
   */
  public function setex($key,$expire,$value)
  {
    return $this->redis->setex($key,$expire,$value);
  }
  /**
   * 设置一个key,如果key存在,不做任何操作.
   * @param unknown $key
   * @param unknown $value
   */
  public function setnx($key,$value)
  {
    return $this->redis->setnx($key,$value);
  }
  /**
   * 批量设置key
   * @param unknown $arr
   */
  public function mset($arr)
  {
    return $this->redis->mset($arr);
  }
  /*************redis 无序集合操作命令*****************/
  /**
   * 返回集合中所有元素
   * @param unknown $key
   */
  public function sMembers($key)
  {
    return $this->redis->sMembers($key);
  }
  /**
   * 求2个集合的差集
   * @param unknown $key1
   * @param unknown $key2
   */
  public function sDiff($key1,$key2)
  {
    return $this->redis->sDiff($key1,$key2);
  }
  /**
   * 添加集合。由于版本问题,扩展不支持批量添加。这里做了封装
   * @param unknown $key
   * @param string|array $value
   */
  public function sAdd($key,$value)
  {
    if(!is_array($value))
      $arr=array($value);
    else
      $arr=$value;
    foreach($arr as $row)
      $this->redis->sAdd($key,$row);
  }
  /**
   * 返回无序集合的元素个数
   * @param unknown $key
   */
  public function scard($key)
  {
    return $this->redis->scard($key);
  }
  /**
   * 从集合中删除一个元素
   * @param unknown $key
   * @param unknown $value
   */
  public function srem($key,$value)
  {
    return $this->redis->srem($key,$value);
  }
  /*************redis管理操作命令*****************/
  /**
   * 选择数据库
   * @param int $dbId 数据库ID号
   * @return bool
   */
  public function select($dbId)
  {
    $this->dbId=$dbId;
    return $this->redis->select($dbId);
  }
  /**
   * 清空当前数据库
   * @return bool
   */
  public function flushDB()
  {
    return $this->redis->flushDB();
  }
  /**
   * 返回当前库状态
   * @return array
   */
  public function info()
  {
    return $this->redis->info();
  }
  /**
   * 同步保存数据到磁盘
   */
  public function save()
  {
    return $this->redis->save();
  }
  /**
   * 异步保存数据到磁盘
   */
  public function bgSave()
  {
    return $this->redis->bgSave();
  }
  /**
   * 返回最后保存到磁盘的时间
   */
  public function lastSave()
  {
    return $this->redis->lastSave();
  }
  /**
   * 返回key,支持*多个字符,"\n";
    //重新设置新消息
    $this->lPush($lkey, $key);
    $this->setex($key, 3600, $msg);
    return $key;
  }
  /**
   * 得到条批量删除key的命令
   * @param unknown $keys
   * @param unknown $dbId
   */
  public function delKeys($keys,$dbId)
  {
    $redisInfo=$this->getConnInfo();
    $cmdArr=array(
      'redis-cli',
      '-a',
      $redisInfo['auth'],
      '-h',
      $redisInfo['host'],
      '-p',
      $redisInfo['port'],
      '-n',
      $dbId,
    );
    $redisStr=implode(' ', $cmdArr);
    $cmd="{$redisStr} KEYS \"{$keys}\" | xargs {$redisStr} del";
    return $cmd;
  }
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

标签:
PHP,Redis,通用类

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com

评论“PHP实现的Redis操作通用类示例”

暂无“PHP实现的Redis操作通用类示例”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?