PHP安装redis扩展

本文介绍如何使用 PHP 的 phpredis 扩展将 session 数据存储到 Redis 中,并详细记录了安装配置过程及验证方法。

PHP扩展有很多,参考:http://redis.io/clients#php

官方打星的就是phpredis Predis,phpredis是C写的,效率会高写,Predis是PHP写的,能直接看到源码。

下载phpredis,一方面是觉得性能好,另一方面主要是用它来存session,地址:https://github.com/phpredis/phpredis/tree/2.2.7

不知道为啥phpredis有那么多分枝,还是直接下2.2.7。

安装phpredis之前,需要先安装igbinary的一个扩展,因为会用到。参考:https://pecl.php.net/package/igbinary

pecl install igbinary

安装好之后,加入扩展信息到php.ini

extension=igbinary.so

安装方法也很简单,参考:https://github.com/phpredis/phpredis/tree/master#installation

phpize
./configure [--enable-redis-igbinary]
make && make install

会在/usr/lib64/php/modules/看到redis.so,加入扩展到php.ini中,一定要加到igbinary.so之后。

==================================================================================

windows下安装igbinary

参考:https://pecl.php.net/package/igbinary/1.2.1/windows

下载对应版本的dll,同样加入到php.ini扩展。

参考:http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/

下载对应版本的dll,同样加入到php.ini扩展。


根据phpredis说明,连接redis有connect和pconnect两种,根据参考资料来看,pconnect的close()只是不允许php继续访问redis,并不是直接关闭连接,整个php-fpm生命周期都有效。

参考:http://m.blog.youkuaiyun.com/blog/qmhball/46988111


设置php.ini中

session.save_handler = redis
session.save_path="127.0.0.1:6379"

测试redis存储session

<?php
//如果未修改php.ini下面两行注释去掉
//ini_set('session.save_handler', 'redis');
//ini_set('session.save_path', 'tcp://127.0.0.1:6379');
session_start();
$_SESSION['sessionid'] = 'this is session content!';
echo $_SESSION['sessionid'];
echo '<br/>';

$redis = new redis();
$redis->connect('ipaddress', 6379);
//redis用session_id作为key并且是以string的形式存储
echo $redis->get('PHPREDIS_SESSION:' . session_id());
 ?>
输出:

this is session content!
sessionid|s:24:"this is session content!";

从输出内容可以看到,无论从$_SESSION['key'],还是$redis->get('PHPREDIS_SESSION:'.session_id())都可以输出内容,证明session确实已经存储到redis中。


如果设置php.ini以后通过phpinfo()查看session.save_handler和session.save_path并没有变化,还是原来的file,那就是因为有其他conf覆盖了这些配置。很可能是/etc/php-fpm.conf或者/etc/php-fpm.d/*.conf,找到并修改,重启php-fpm即可。


### 如何在 PHP安装和配置 Redis 扩展 #### 安装 Redis 服务 为了使 PHP 能够与 Redis 进行交互,首先需要确保服务器上已正确安装并运行 Redis 服务。可以通过以下命令来验证 Redis 是否正常工作: ```bash redis-cli ping ``` 如果返回 `PONG` 则表示 Redis 正常运行[^1]。 #### 安装 PHPRedis 扩展 ##### 寻找 php.ini 文件路径 通过执行以下命令获取当前使用的 `php.ini` 文件位置: ```php <?php phpinfo(); ?> ``` 或者直接运行脚本: ```bash php74 -r 'phpinfo();' ``` 查看输出中的 `Configuration File (php.ini) Path` 字段以确认其具体路径[^3]。 ##### 编辑 php.ini 并加载扩展 打开找到的 `php.ini` 文件,在其中添加以下内容以启用 Redis 扩展: ```ini extension=redis.so ``` 保存更改后,重启 Web 服务器或 FastCGI 处理程序以便应用新的配置项。例如对于 Nginx 和 Apache 使用 FPM 模式的场景可分别执行: ```bash systemctl restart php-fpm # 或者 service apache2 restart ``` 注意:修改 `php.ini` 后必须重新启动对应的 PHP-FPM 服务才能生效[^2]。 ##### 验证扩展是否成功加载 完成上述操作之后,再次利用命令行工具检测 Redis 支持情况: ```bash php -m | grep redis ``` 如果有显示则代表安装无误;也可以借助于创建临时测试页面的方式进一步核实功能可用性。 #### 特定环境下的注意事项 - **WAMP/LAMP 类集成开发包**: 如果是在 WAMP Server 上部署,则按照官方文档指引下载对应版本号匹配好的 DLL 动态链接库文件放入 ext 目录下再做相应调整即可[^4]。 - **宝塔面板管理方式**: 对于采用宝塔控制台的情况来说更加简便直观——只需进入软件商店搜索 “Redis”,然后点击安装按钮选择合适的选项(建议选编译版),待流程结束即告一段落[^5]。 以上就是关于如何在不同环境下实现 PHP 对接 Redis 数据存储解决方案的一个概括介绍过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值