我让 Redis 为我通过 PHPRedis 访问的几个子域运行共享 session 存储。 session cookie 的生命周期很长,因此用户不必经常登录,但我发现无论如何我必须大约每半小时登录一次。
检查 Redis 实例表明每个键的 TTL 默认设置得非常低(大约 1500 秒)。 PHPRedis 文档是这样说的:
Sessions have a lifetime expressed in seconds and stored in the INI variable "session.gc_maxlifetime". You can change it with ini_set().
不清楚这是指 cookie 的生命周期还是 Redis key 的 TTL。我将 session.cookie_lifetime
和 session.gc_maxlifetime
都设置为 100000 秒来运行测试,但看起来新 session 条目在 Redis 中仍然以 1500 秒 TTL 开始。
直接与Redis交互时如何设置TTL已经很清楚了,但是我不知道如何通过PHPRedis的 session 管理器来设置这个值。有什么建议吗?
最佳答案
kiss-web 是正确的,无论出于何种原因 ini_set('session.gc_maxlifetime', 100000);
都不起作用,但是更改 php.ini 中的设置就成功了。
关于php - 在 PHPRedis session 上设置过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496617/