2

我让 Redis 为我通过 PHPRedis 访问的几个子域运行共享会话存储。会话 cookie 的生命周期很长,因此用户不必经常登录,但我发现我必须大约每半小时登录一次。

检查 Redis 实例显示每个键的 TTL 默认设置得非常低(大约 1500 秒)。PHPRedis 文档有这样的说法:

会话的生命周期以秒表示,并存储在 INI 变量“session.gc_maxlifetime”中。您可以使用 ini_set() 更改它。

目前尚不清楚这是指 cookie 的生命周期还是 Redis 密钥的 TTL。我将session.cookie_lifetime和都设置session.gc_maxlifetime为 100000 秒来运行测试,但看起来新的会话条目仍然以 Redis 中的 1500 秒 TTL 开始。

直接和Redis交互的时候如何设置TTL已经很清楚了,但是我不知道如何通过PHPRedis的会话管理器来设置这个值。有小费吗?

4

1 回答 1

3

Kiss-web 是对的,无论出于何种原因ini_set('session.gc_maxlifetime', 100000);都无法正常工作,但是更改 php.ini 中的设置就可以了。

于 2016-09-15T21:15:15.250 回答