小型 web 服务,session 数据基本是保存在本地(更多是本地磁盘文件),但是当部署多台服务,且需要共享 session,确保每个服务都能共享到同一份 session 数据。
redis 数据存储在内存中,性能好,配合持久化可确保数据完整。
1、通过 php 自身 session 配置实现
修改 php.ini 文件:
# 使用 redis 作为存储方案 session.save_handler = redis session.save_path = "tcp://127.0.0.1:6379" # 若设置了连接密码, 则使用如下 session.save_path = "tcp://127.0.0.1:6379?auth=密码"
修改完成后,重启PHP服务使之生效。
2、通过项目配置文件实现
如果不喜欢修改系统 PHP 环境配置,也可以在项目代码中添加代码来实现:
<?php
ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");
3、测试
<?php
ini_set("session.save_handler", "redis");
ini_set("session.save_path", "tcp://127.0.0.1:6379");
session_start();
echo "<pre>";
$_SESSION['usertest'.rand(1,5)]=1;
var_dump($_SESSION);
echo "</pre>";
4、输出结果
array(2) {
["usertest1"]=>
int(88)
["usertest3"]=>
int(1)
}
usertest1|i:1;usertest3|i:1;