本文详细介绍了如何根据 php 版本选择合适的 redis 扩展及官方下载地址,以及在配置使用的过程中出现了 Fatal error 致命错误的解决方法。
一、查看 php 版本相关信息
通过 phpinfo() 函数查看 php 版本相关信息,此操作是用来决定选择 redis 哪个扩展版本。
phpinfo();
找到如下2个参数:
参数:Architecture 值:x86
参数:PHP Extension Build 值:API20170718,NTS,VC15
如图所示:
二、下载 php 的 redis 扩展
进入 PHP 官方扩展页面,下载合适的 redis 扩展
1、PHP 官方扩展地址:http://pecl.php.net/
2、在页面右上角 Search for 搜索框中输入 redis 回车搜索
3、在搜索结果列表 Search results 中
对应的地址如下:http://pecl.php.net/package-search.php?pkg_name=redis
点击 redis 进入扩展详细页
4、会看到如下字样的版本号,即:alpha, beta, stable
stable 稳定版本,最终发行版本
beta 公开测试版本,alpha 版本的升级版
alpha 内部测试版本
对应的地址如下:http://pecl.php.net/package/redis
这里我们选择最新版的稳定版本,即:5.3.2 stable 2020-10-22 发布的,点击 DLL 进入下载页
5、根据第一步中提供的参数,这里我们选择 (NTS) x86 版本的扩展
对应的地址如下:http://pecl.php.net/package/redis/5.3.2/windows
如,点击:7.2 Non Thread Safe (NTS) x86 即可下载
6、在下载下来的压缩包中,会发现有一个文件:php_redis.dll
把此文件复制到 PHP 的 ext 目录下
三、修改 php.ini 配置文件,并重启服务器
1、修改 php.ini 文件,把 php_redis.dll 文件加入到 php 的配置中,如下:
extension=php_redis.dll
2、重启服务器,使新添加的 redis 扩展生效
3、再次回到 phpinfo() 页面查看,会发现 php 的 redis 扩展已经安装上了
特别说明,网络上很多的文章,讲到这里,就结束了,但是当你实际使用的时候,却根本运行不了。
代码如下:
$redis = new Redis();
$redis -> connect("127.0.0.1", 6379);
$redis -> set("test", "this is test", 10);
echo $redis -> get("test");
$arr = $redis->keys('*');
print_r($arr);
会报如下致命错误:
究其原因,是因为在 Windows 环境下,没有安装 redis 服务端导致的。
也就是接下来的第四步操作。
四、安装 redis 服务端
1、下载地址如下:
https://github.com/microsoftarchive/redis/releases
点开 Assets,选择 Redis-x64-3.2.100.zip 进行下载
2、下载下来后,比如存放到:D:/soft/目录下,解开压缩包,目录如下:
3、双击 redis-server.exe 则服务端 redis 就运行了,效果如下:
需要注意的是,此窗口不能关闭,一旦关闭就会出现第三步的致命错误。
4、此时再次运行 php 代码,发现已经成功执行了。
五、设置 Windows 下 redis 开机自启动
为了解决第四步操作出现的 redis 服务端窗口不能关闭的情况,下面把 redis 服务设置成开机自启动。
1、找到 redis 服务端安装包的存放位置
比如本例中的存放位置为:D:/soft/Redis-x64-3.2.100
2、利用 cmd 命令打开命令行窗口,并进入 D:/soft/Redis-x64-3.2.100
即:D:\soft\Redis-x64-3.2.100>
执行如下代码:
redis-server --service-install redis.windows-service.conf --loglevel verbose
即:D:\soft\Redis-x64-3.2.100>redis-server --service-install redis.windows-service.conf --loglevel verbose
3、查看 redis 的启动状态
桌面 - 计算机 - 管理 - 服务和应用程序 - 服务
可以看到服务列表中已经出现 Redis 服务了,如果 Redis 的状态不是“已启动”,需要启动此服务。
4、此时把第四步中的服务端窗口关闭,再次执行 php 代码,发现可以成功执行,说明 redis 服务端自启动添加成功。
本文首次发表地址:
http://www.yiduhao.com/index/news/news_detail.html?id=103