Redis 缓存 PHP 7.2 session 变量共享

Redis 缓存 PHP 7.2 session 变量共享Redis 缓存 PHP 7.2 session 变量共享

通常负载均衡内容有两种形式,一种是静态,另外一种是动态,动态网站内容就可能须要进行交互,那么就涉及到session共享的问题。默认PHP是将session存储在LocalDisk,若是是多台php主机之间进行负载,那么该如何共享session?今天咱们就解决这个问题。php

session会话共享文件有不少种方式:html

分布式文件共享;NFS,NAS文件存储等。linux

Nginx负载均衡ip_hash模块,固定访客到后端某台服务器。redis

将session存储到数据库中;例如MySQL,Memcached,Redis,Mongodb等。数据库

我我的比较倾向于将session存储到Redis数据库,用这种方式来同步session共享,不只不会加大数据库的负担,并且安全性比cookie更高,把session放到内存里面,比从磁盘文件中读取会快不少。“有人认为;那我把全部的缓存软件都安装,速度岂不是更快,那就不是缓存加速了,而演变成了缓存库了”。vim

php语言脚本默认不支持对Redis的操做,因此须要安装第三方phpRedis扩展模块,让其支持对Redis的操做,至于如何安装使用phpRedis,能够参考我前面写的文章《phpRedis扩展模块安装配置使用》。此外这里还须要一台Redis服务器,请参阅《LinuxCentos7 Redis 3.2.9 源码编译安装配置》。后端

1.修改PHP配置文件php.ini将session存储到Redis中。centos

# vim /usr/local/php/etc/php.ini

session.save_handler = files
;session.save_path = "N;/path"
修改成:

session.save_handler = Redis
session.save_path = “tcp://10.10.204.66:6379”

;若是Redis有密码链接方式
session.save_path = “tcp://10.10.204.66:6379?auth=password”
 

2.重启php-fpm服务生效缓存

# systemctl restart php-fpm

以上全部过程均是通过手工测试的,99%可用于生产。安全

本文地址:https://www.linuxprobe.com/redis-php-session.html