一、PHP安装Redis扩展
安装环境
- 服务器环境:Linux / CentOS 7
- PHP版本:PHP 7.0.30 (可使用 php -m 命令查看已经安装的php扩展),还需确认是否安装了 phpize 和 php-config 两个工具,如果没有可以用 yum install php-devel 命令安装
- PHP Redis扩展:wget https://github.com/phpredis/phpredis/archive/develop.zip
安装步骤
1. 解压Redis扩展包
unzip develop.zip 解压,完成之后会有 phpredis-develop 目录。
2.进入到 phpredis-develop 目录,使用 phpize 生成 configure 工具
3. 使用 configure 工具
./configure --with-php-config=/usr/bin/php-config (with-php-config 参数的值为 php-config 目录)
4. make、make install 操作
出现 Installing shared extensions: /usr/lib64/php/modules/ 表示PHP 的Redis扩展包已经放到指定的目录
5. 修改 php.ini 文件启用 Redis 扩展
php --ini 命令可以查看 php.ini 文件的所在路径。在php.ini 文件最后添加一行extension=redis.so
6. 查看是否安装成功 (依旧使用 php -m 命令)
二、PHP 操作 Redis
- php 操作 redis 说明文档:https://github.com/phpredis/phpredis
- Redis类命名空间是根,在其他命名空间下使用 Redis 类,需要加上根目录符号
- phpredis的命令和参数基本和 redis 命令一致
连接
<?php
$redis = new \Redis();
$redis->connect('127.0.0.1', 7200);
string 类型
//连接redis
$redis = new \Redis();
$redis->connect('127.0.0.1', 7200);
//string 操作
$redis->delete('string1');
$redis->set('string1', 'value1');
$val = $redis->get('string1');
var_dump($val);
//自增操作
$redis->set('string1', 5);
$redis->incr('string1');
$val = $redis->get('string1');
var_dump($val);
list 类型
<?php
/**
* Created by PhpStorm.
* User: nignsiy
* Date: 2018/11/25
* Time: 20:28
*/
//连接redis
$redis = new \Redis();
$redis->connect('127.0.0.1', 7200);
//list 操作
$redis->delete('list1'); //先删除要操作的key
$redis->lPush('list1', 'A'); //从队列的左边压入元素
$redis->lPush('list1', 'B');
$redis->lPush('list1', 'C');
$pop_value = $redis->rPop('list1'); //在队列的右边弹出元素
var_dump($pop_value); //由于是“先进先出”,所以打印的值应该为 A
set 类型
<?php
/**
* Created by PhpStorm.
* User: nignsiy
* Date: 2018/11/25
* Time: 20:39
*/
//实例化Redis类并连接
$redis = new \Redis();
$redis->connect('127.0.0.1', '7200');
//set类型操作
$key = 'set1';
$redis->delete($key); //先删除要操作的key
$redis->sAdd($key, 'A'); //往集合set1插入元素
$redis->sAdd($key, 'B');
$redis->sAdd($key, 'C');
$redis->sAdd($key, 'D');
$redis->sAdd($key, 'D');
$redis->sAdd($key, 'C');
$count_value = $redis->sCard($key); //获取集合 set1 中元素个数
var_dump($count_value); //set类型中不能有重复的元素,所以打印结果应该为4
$values = $redis->sMembers($key); //以数组的形式返回集合 set1 中所有的元素
var_dump($values);
hash 类型
<?php
/**
* Created by PhpStorm.
* User: nignsiy
* Date: 2018/11/25
* Time: 20:56
*/
//实例化Redis类并连接
$redis = new \Redis();
$redis->connect('127.0.0.1', '7200');
$key = 'student1';
$redis->delete($key);
//往key中 添加键值对
$redis->hSet($key, 'name', 'xiaoming');
$redis->hSet($key, 'age', 12);
$redis->hSet($key, 'sex', 1);
//获取key中 name 的值
$name = $redis->hGet($key, 'name');
var_dump($name);
//获取 $key(student1)中所有信息
$student_info = $redis->hMGet($key, array('name', 'age', 'sex'));
var_dump($student_info);
zset 类型
<?php
/**
* Created by PhpStorm.
* User: nignsiy
* Date: 2018/11/25
* Time: 21:11
*/
//实例化Redis类并连接
$redis = new \Redis();
$redis->connect('127.0.0.1', '7200');
$key = 'zset1';
$redis->delete($key);
//向zset1 中添加元素
$redis->zAdd($key, 85, 'xiaoming');
$redis->zAdd($key, 90, 'zhang');
$redis->zAdd($key, 72, 'lee');
$redis->zAdd($key, 99, 'wu');
//按照分数(score)从低到高显示,参数end为-1 表示展示所有
$val = $redis->zRange($key, 0, -1);
var_dump($val);
//从高到低显示
$re = $redis->zRevRange($key, 0, -1);
var_dump($re);
本文主要讲了PHP安装Redis扩展,PHP操作Redis的五种数据类型。