1 配置环境(php7 ubuntu16.04)
1.1 安装php扩展
$sudo apt-get install php-redis
//如果报了redis-server错误,就卸载了redis-server(apt-get autoremove redis-server)
//然后去packagist.org网站搜索redis用composer安装一个,在执行扩展任务试一下
1.2 修改配置文件
在vim /etc/php/7.0/apache2/php.ini和vim /etc/php/7.0/cli/php.ini文件中都天上如下:
extension=redis.so
1.3 重启apache
/etc/init.d/apache2 restart
1.4 验证下是否安装好redis-php扩展
在根目录下建个phpinfo.php的文件,然后里面输入phpinfo();在浏览器访问此文件,如果出现如下图片,就是成功了。
2 php中redis使用
2.1 连接redis
<?php
try{
//连接本地的redis服务
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
//查看服务是否运行
echo "Server is running:".$redis->ping();
}catch(Exception $e){
echo $e->getMessage();
exit;
}
2.2 字符串
<?php
try{
//连接本地的redis服务
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
//设置 redis 字符串数据
$redis->set("tutorial-name", "Redis tutorial");
// 获取存储的数据并输出
echo "Stored string in redis:: " . $redis->get("tutorial-name");
}catch(Exception $e){
echo $e->getMessage();
exit;
}
输出:
Stored string in redis:: Redis tutorial
2.4 hash(主要用来存储数据库的格式)
<?php
try{
//连接本地的redis服务
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
//我的redis连接密码
$redis->auth("123456");
//$a可以换成数据库查询的多条数据
$a=array(
0=>[id=>1,name=>"lisi"],
1=>[id=>2,name=>"wangwu"]
);
//先循环出id,让每个id和hash的key拼接,这样每条数据都对应的一个key
foreach($a as $v){
//hash可以插入数组,但是需要用hmset,hset只能插入单条数据,即字符串
$redis->hmset("user".$v['id'],["id"=>$v['id'],"name"=>$v['name']]);
}
$b=[];
//先查出所有的符合user开头的key,循环
foreach ($redis->KEYS("user*") as $v) {
//取出每个key的所有值
$b[]=$redis->hgetall($v);
}
var_dump($b);
}catch(Exception $e){
echo $e->getMessage();
exit;
}
输出:
array(2) {
[0]=>
array(2) {
["id"]=>
string(1) "2"
["name"]=>
string(6) "wangwu"
}
[1]=>
array(2) {
["id"]=>
string(1) "1"
["name"]=>
string(4) "lisi"
}
}
2.3 list列表
<?php
try{
//连接本地的redis服务
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
//存储数据到列表中
$redis->lpush("tutorial-list", "Redis");
$redis->lpush("tutorial-list", "Mongodb");
$redis->lpush("tutorial-list", "Mysql");
// 获取存储的数据并输出
$arList = $redis->lrange("tutorial-list", 0 ,-1);
print_r($arList);
}catch(Exception $e){
echo $e->getMessage();
exit;
}
输出:
Array ( [0] => Mysql [1] => Mongodb [2] => Redis [3] => Mysql [4] => Mongodb [5] => Redis )