阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Redis 缓存 PHP 7.2 session 变量共享

92次阅读
没有评论

共计 956 个字符,预计需要花费 3 分钟才能阅读完成。

Redis 缓存 PHP 7.2 session 变量共享

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

session 会话共享文件有很多种方式:

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

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

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

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

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

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

# 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% 可用于生产。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-30发表,共计956字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中