我已经让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设置此值。会议经理。有什么提示吗?
答案 0 :(得分:2)
kiss-web是正确的,无论出于何种原因ini_set('session.gc_maxlifetime', 100000);
无法正常工作,但改变php.ini中的设置就可以了。