使用步骤
- 首先要安装phpredis扩展
- 配置session支持redis
- 启用session
安装 phpredis 扩展
参考项目地址中介绍的安装方法 地址,其实就是 php
使用 phpize
编译安装扩展的方法
配置session支持redis
即时配置,直接在php文件中配置,只是运行脚本中生效
1
2ini_set('session.save_handler','Redis');
ini_set('session.save_path','tcp://localhost:6379');配置php.ini,全局生效,配置完记得重启http服务器
1
2
3
4
5
6
7session.save_handler = redis
//多节点
session.save_path = "tcp://ip:port?auth=secret?weight=1&timeout=2.5,tcp://ip2:port2?weight=2"
//单个节点
session.save_path = "tcp://ip:port?auth=secret?weight=1&timeout=2.5"
//socket 方式
session.save_path = "unix:///var/run/redis/redis.sock?persistent=1&weight=1&database=0"
上面两种配置方式,可以根据自己的需求进行配置。
使用方式
配置完之后就可以使用session了,使用方法不变,但是保存的驱动已经修改1
2session_start();
$_SESSION['s1'] = 'demo session'; // 这样 session 就存储在 redis 中
在redis中查看session的方法
1 | $redis = new redis(); |
session过期时间配置
1 | 使用 php.ini 中的 session.gc_maxlifetime |
补充说明
- 可以在redis中读取信息,查看是否已经启用
- 在配置的时候可以指定 timeout / auth 等各种配置项
- 配置参考 https://github.com/phpredis/phpredis#php-session-handler
- 在php5.6测试的时候,第一种即时配置的方法不起作用(windows)
配置参数说明:
- ip: Redis 节点的 IP。
- port: Redis 节点的端口。
- auth: 与 Redis 节点进行权限验证。
- weight: 权重,上面的例子表示 session 数量,ip2 节点 是 ip1 节点的两倍。
- timeout: Redis 连接超时时间。单位:秒。连接失败时,Session 不可用(风险!)
- persistent: 持久连接。
- prefix: 前缀,默认是
PHPREDIS_SESSION:
。 - database: 选择哪个 Redis 数据库。取值:int。参见 Redis 配置
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
End