PHP7使用Redis保存session
PHP默认就支持保存session到redis,不需任何额外代码,首先安装redis,参考 redis快速安装
PHP默认使用文件存储session,如果并发量大,效率非常低,如项目同时运行在多台服务器上做了分布式部署,就无法使用常规的Session记录方式来记录用户的会话了,否则用户在服务器1上完成登录,我们下次在服务器2上访问其他模块就无法获取到该用户的信息。
PHP安装redis扩展
以下操作需要在下载的 phpredis 目录中完成:
wget https://github.com/phpredis/phpredis/archive/4.2.0.tar.gz
cd phpredis-4.2.0 # 进入 phpredis 目录
/usr/local/php/bin/phpize # php安装后的路径
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
redis.so扩展存放在/usr/local/php/lib/php/extensions/no-debug-xxxxxxx/目录下。
修改php.ini文件
vi /usr/local/php/lib/php.ini
增加redis扩展:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20170718"
extension = "redis.so"
修改session设置
vi /usr/local/php/lib/php.ini
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
如果Redis有密码,用下面的配置:
session.save_path = "tcp://127.0.0.1:6379?auth=password"
安装完成后重启php-fpm ,查看phpinfo信息,就能看到redis扩展。
systemctl restart php-fpm
系统登录以后查看redis,session信息已经写入进去了,如下图
测试PHP是否调通 redis 方法:
$redis = new Redis();
$redis->connect('192.168.x.x', 6379); //redis地址,端口
$redis->auth('password'); //redis密码,无密码可注释掉
$redis->select(1); //选择数据库
$redis->set("test","hello php redis.");
echo $redis->get("test");
页面显示hello php redis.字样即redis和php配置正常。
Tag标签:「session redis php」更新时间:「2021-11-03 23:46:31」阅读次数:「792」