PHP中的Redis会话忽略了php.ini设置

时间:2014-08-14 19:58:20

标签: php session redis

我们最近将PHP SESSION管理从memcache切换到了Redis。在正确存储SESSION的同时,我们注意到人们现在每1440年被注销,或者session.gc_maxlifetime的默认值。但是在我们的php.ini文件中,我们设置了以下值:

session.gc_maxlifetime = 86400
session.cookie_lifetime = 86400

我已经通过phpinfo()确认,只有当我们的保存处理程序设置为session.save_handler = files时才能正确读取这些值。但是,每当我们将保存处理程序设置为Redis时,将忽略这些php.ini值并使用默认的PHP值。我们的php.ini中的Redis行是:

session.save_handler = redis
session.save_path = tcp://127.0.0.1:6379?auth=noauth

我的想法是,可能有另一个参数我可以传递到session.save_path URL来设置密钥的TTL值,但是哪些参数有效的文档很少。有没有办法让Redis从php.ini中获取正确的TTL值?或者在URL中传递它的方法?

1 个答案:

答案 0 :(得分:0)

我能够找到一种解决方法,但它仍然无法解释为什么Redis不会读取我的php.ini文件中的设置。相反,我能够更改代码中的设置并正确识别:

ini_set('session.gc_maxlifetime', 604800);
session_start();