您的位置:首页 > 数据库 > Redis

如何安装php的redis扩展,以及几个简单实用的php操作

2019-07-09 14:59 656 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u012274988/article/details/95196771

问:redis和php都安装好了,怎么redis还没法用啊?

答:因为你缺乏redis和php之间的沟通桥梁啊。这个桥梁就是redis扩展,需要用php加载这个扩展的,加载上去就好能用了。

 

问:那怎么添加上扩展呢?

答:添加扩展其实在php里面是很常见的操作,就是把动态库下载下来,放到对应的位置,然后在php.ini这个配置文件中开启就行了。

 

问:windows和linux中安装redis扩展一样么?

答:步骤是一样的,但是有点区别。这里假设你已经安装好php环境和redis服务器了。

先来说一下linux是怎么安装redis扩展的。

另外我本机的环境是centos x86_64  php版本5.6 nts版本,这里千万别和windows环境混了,只有windows下的php才有vc的版本

第一步:下载扩展包。wget https://codeload.github.com/phpredis/phpredis/zip/develop

解压:unzip develop.zip 

进入到 phpredis-develop 目录

第二步:使用 phpize 生成 .configure文件。/usr/local/php7/bin/phpize

若缺少auotoconf文具安装它即可

yum install -y autoconf(简单方便,如果不缺少,这一步就不用了)。

再次执行/usr/local/php5.6/bin/phpize(这个路径根据自己的来,如果多个php 版本,一定要注意使用版本问题)

第三步:编译安装

./configure --with-php-config=/usr/local/php5.6/bin/php-config

make && make install 

此时不出意外就会安装成功了。返回给你一个安装目录 。这里面就会有一个redis.so的扩展文件。

第四步:在php配置文件中添加上redis扩展。

extension=redis.so(是在真实加载的php.ini文件中,你可能有多个这样的文件,注意查看php真实加载是哪个)

第五步:没大问题的话,写个echo phpinfo();就能看到关于redis的信息了。

 

下面再来说一下windows下如何添加redis扩展。

同样我本机的环境是win7旗舰版 php是5.6版本  TS,VC11。一定要注意好对应版本。 他不像linux那样需要自己编译,windows这个下载的是成品,版本不对,是没法用的

第一步:下载redis扩展库。下载地址

http://91code.site/download/php_redis-2.2.7-5.6-ts-vc11-x86.zip

解压会得到两个文件一个是php_redis.dll,另一个是php_redis.pdb

网上还有说要下载php_igbinary扩展库的,查了一下说igbinary在序列化和反序列化的效率要比Php自带的高,redis依赖他,而且要放到redis动态库前面,否则不生效。但是。。我没有安装这个库,用redis感觉无碍,可能到用到序列化的时候才能高下立判吧,如果你在意,下载下来安装上即可。要放到php的ext目录下!

第二步:修改php.ini文件

extension=php_igbinary.dll(如果有的话)

extension=php_redis.dll

 

第三步:重启apache,写个echo phpinfo();就能查看redis的信息了

 

至此redis扩展安装完毕,小伙伴们可以愉快地通过php使用redis了。

 

问:php怎么使用redis,能给举个栗子么?

答:基本操作就三个。连+写+读

$redis = new Redis();

$redis->connect('127.0.0.1', 6379);

    echo "Connection to server successfully";

    //查看服务是否运行

    echo "Server is running: " . $redis->ping();

 

//设置 redis 字符串数据

$redis->set("tutorial-name", "Redis tutorial");

// 获取存储的数据并输出

echo "Stored string in redis:: " . $redis->get("tutorial-name");

 

//存储数据到列表中

   $redis->lpush("tutorial-list", "Redis");

   $redis->lpush("tutorial-list", "Mongodb");

   $redis->lpush("tutorial-list", "Mysql");

   // 获取存储的数据并输出

   $arList = $redis->lrange("tutorial-list", 0 ,5);

   echo "Stored string in redis";

   print_r($arList);

 

// 获取数据并输出

   $arList = $redis->keys("*");

   echo "Stored keys in redis:: ";

   print_r($arList);

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: