php 操作 redis

使用php操作redis需要开启php的redis扩展,开启很简单,首先去官网下载一个对应php版本的redis压缩包,https://github.com/dmajkic/redis/downloads,安装到windows随便一个盘符的根目录,之后再http://windows.php.net/downloads/pecl/snaps/redis/  下载对应版本的redis扩展即可


下载完毕后,解压缩,将php_redis.dll放入php安装目录的ext文件夹之中。之后在php.ini中添加extension=php_redis.dll。

php   redis扩展安装完毕,重启服务器,查看phpinfo();若出现

至此,redis扩展开启完毕,在此基础上就可以使用php操作redis了。

php中redis的写法非常简单,以比较常见的string型举例如下。

1>  php 连接 redis 服务器,前提是redis服务器保持开启状态,代码如下:

        $redis=new redis();
        $redis->connect('127.0.0.1', 6379); 
ok,,使用代码$this->redis->ping(),判断连接是否成功,$this->redis->ping()  =  '+PONG'时表示,连接成功。

2>  set 赋值,get取值操作,用法如下:

       $redis->set('ceshi','11111');
       echo $redis->get('ceshi');
     结果如下:

3>  delete 删除指定key

	$redis->set('ceshi','11111');
	$redis->delete('ceshi'); 
	var_dump($redis->get('ceshi'));
redis的delete 返回结果为true,结果如下:表示未找到key

一个redis的操作类:

          

<?php
class redisInit {
  
  public $redis; //redis对象
  
  /**
   * 初始化Redis
   * $config = array(
   *  'server' => '127.0.0.1' 服务器
   *  'port'   => '6379' 端口号
   * )
   * @param array $config
   */

  public function __construct($config = array()) {
    if ($config['server'] == '')  $config['server'] = 'ip';
    if ($config['port'] == '')  $config['port'] = 'port number';
    $this->redis = new Redis();
    $this->redis->connect($config['server'], $config['port']);
    if($this->redis->ping()!='+PONG'){
      $this->redis=false;
    }
    return $this->redis;
  }
  
  /**
   * 设置值
   * @param string $key KEY名称
   * @param string|array $value 获取得到的数据
   * @param int $timeOut 时间
   */
  public function set($key, $value,$timeOut) {
    $value = json_encode($value, TRUE);
    $retRes = $this->redis->set($key, $value);
    if($timeOut > 0) {
       $retRes = $this->redis->expire($key, $timeOut);
    }
    return $retRes;
  }
  /**
  * hash 存储
  * @param string $key KEY名称
  * @param string $filed 字段名称名称
  * @param string|array $value 获取得到的数据
  */
  public function hset($key,$filed,$value){
     $value = json_encode($value, TRUE);
     $retRes = $this->redis->hset($key,$filed,$value);
     return $retRes;
  }
   /**
   * 通过KEY FILED获取数据
   * @param string $key KEY名称
   * @param string $filed 字段名称
   */
  public function hget($key,$filed){
     $result = $this->redis->hget($key,$filed);
     return json_decode($result, TRUE);
  }

  /**
   * 通过KEY获取数据
   * @param string $key KEY名称
   */
  public function get($key) {
    $result = $this->redis->get($key);
    return json_decode($result, TRUE);
  }
  
  /**
   * 删除一条数据
   * @param string $key KEY名称
   */
  public function delete($key) {
    return $this->redis->delete($key);
  }
  
  /**
   * 清空数据
   */
  public function flushAll() {
    return $this->redis->flushAll();
  }
  
  /**
   * 数据入队列
   * @param string $key KEY名称
   * @param string|array $value 获取得到的数据
   * @param bool $right 是否从右边开始入
   */
  public function push($key, $value ,$right = true) {
    $value = json_encode($value);
    return $right ? $this->redis->rPush($key, $value) : $this->redis->lPush($key, $value);
  }
  
  /**
   * 数据出队列
   * @param string $key KEY名称
   * @param bool $left 是否从左边开始出数据
   */
  public function pop($key , $left = true) {
    $val = $left ? $this->redis->lPop($key) : $this->redis->rPop($key);
    return json_decode($val);
  }
  
  /**
   * 数据自增
   * @param string $key KEY名称
   */
  public function increment($key) {
    return $this->redis->incr($key);
  }

  /**
   * 数据自减
   * @param string $key KEY名称
   */
  public function decrement($key) {
    return $this->redis->decr($key);
  }
  
  /**
   * key是否存在,存在返回ture
   * @param string $key KEY名称
   */
  public function exists($key) {
    return $this->redis->exists($key);
  }
  public function hexists($key,$filed) {
    return $this->redis->hexists($key,$filed);
  }
  /**
   * 返回redis对象
   * redis有非常多的操作方法,我们只封装了一部分
   * 拿着这个对象就可以直接调用redis自身方法
   */
  public function redis() {
     return $this->redis;
  }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值