php 操作 redis

来源:互联网 发布:留学生落户北京 知乎 编辑:程序博客网 时间:2024/05/18 02:39

使用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的操作类:

          

<?phpclass 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;  }}






0 0
原创粉丝点击