欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

Redis PHP+windowsRedis PHP配置

PHP 夜阑小雨 2261℃ 0评论

目前用php开发的,项目中有一处new Redis() 代码,每次执行到这里都会抛出这个异常Class ‘Redis’ not found,但是本地安装的redis服务测试都是好着的,这个问题让作者费了不少心思,深入探究,反复验证,终于把这个问题解决了,想必也有其他开发者朋友遇到过这个问题,今天作者就把解决过程整理一下分享出来。

本案例先决条件:为php7.2搭建redis扩展的前提是在本机上已经成功搭建好php的运行环境,笔者的电脑安装的php的软件是xampp,(其他的软件Wamp也类似)集成环境是apache2.4+mysql5.1+php7.2,操作系统为Win10 系统64位。

一、下载安装Redis
1、下载Redis-x64-3.2.100.msi,然后双击软件安装到想要安装的盘符下,我这里是安装目录是D:Program FilesRedis

2、安装目录找到redis.windows.conf文件,然后设置密码

3、开启redis服务
在命令行窗口切换到redis的安装目录,在窗口中输入命令redis-server redis.windows.conf 回车出现下面界面则reids服务安装成功且成功启动:

二、安装php的redis扩展
1、查看扩展版本

使用phpinfo()函数查看PHP的版本信息和php软件位数(32位还是64位软件)和编译环境。这会决定redis扩展文件版本。

版本一定要对应看是TS还是nts,是VC11还是VC12还是其他版本号,不一致的版本驱动文件不会生效,代码中一直会抛异常Class ‘Redis’ not found,笔者最开始也是经历了这个坑。看清楚我的php是32位的(备注:64位操作系统安装的32位的php),编译环境是MSVC15(VisualC++2017) ,扩展版本是TS,VC15

  1. TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。
  2. NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。

TS指Thread Safety,即线程安全,一般在IIS以ISAPI方式加载的时候选择这个版本。
NTS即None-Thread Safe,一般以fast cgi方式运行的时候选择这个版本,具有更好的性能。
2、下载驱动文件igbinaryredis

igbinary下载地址  https://windows.php.net/downloads/pecl/releases/igbinary/

redis     下载地址  https://windows.php.net/downloads/pecl/releases/redis/3.1.4/

根据php的版本信息下载对应的redis驱动文件,我的php版本是7.2的,php扩展版本是TS,VC15

3、拷贝4个扩展驱动文件

将上面四个文件拷贝到php目录下的ext目录下,我这里的目录是D:XAMPPpathphpext

4、修改配置文件php.ini

D:XAMPPpathphpphp.ini文件末尾(任意位置都可以)添加如下内容,支持扩展

  1. ;php_redis
  2. extension=php_igbinary.dll
  3. extension=php_redis.dll


注意:extension=php_igbinary.dll一定要放在extension=php_redis.dll的前面,否则此扩展不会生效

5、重启服务器Apache

这里Apache的集成环境是xampp,浏览器打开phpinfo(),看到redis扩展安装成功。

6、验证扩展是否可用

打开redis服务后,可以用如下方式测试是否能够调用。
 

  1. <?php
  2. //实例化Redis类
  3. $redis = new Redis();
  4. //选择指定的redis数据库连接,默认端口号为6379
  5. $redis->connect('127.0.0.1', 6379);
  6. //指定前面设置的密码
  7. $redis->auth('123456');
  8. echo "Connection to server sucessfully";
  9. //设置 redis 字符串数据
  10. $redis->set("tutorial-name", "Redis tutorial");
  11. // 获取存储的数据并输出
  12. echo "Stored string in redis:: " . $redis->get("tutorial-name");
  13. ?>

现在代码里面redis服务可用了,不会再报Class ‘Redis’ not found错了,到此Windows10系统 64位安装php的redis扩展安装成功。文末再次提醒大家,一定要根据php的版本信息和位数(32位还是64位)下载对应版本的扩展驱动文件,否则不生效

转载请注明:夜阑小雨 » Redis PHP+windowsRedis PHP配置

喜欢 (1)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址