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

PHP中的Redis会话忽略PHP.ini设置,php,session,redis,Php,Session,Redis,我们最近将PHP会话管理从memcache切换到Redis。当会话被正确存储时,我们注意到人们现在每1440秒注销一次,或者session.gc_maxlifetime的默认值。但是,在我们的php.ini文件中,设置了以下值: session.gc_maxlifetime = 86400 session.cookie_lifetime = 86400 我已经通过phpinfo确认,当我们将save处理程序设置为session.save_handler=files时,这些值是正确的只读值。但是

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

session.gc_maxlifetime = 86400
session.cookie_lifetime = 86400
我已经通过phpinfo确认,当我们将save处理程序设置为session.save_handler=files时,这些值是正确的只读值。但是,每当我们将save处理程序设置为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中传递它的方法?

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

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