php - PHP 中的 Redis session 忽略 php.ini 设置

标签 php session redis

我们最近将 PHP SESSION 管理从内存缓存切换到了 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 中以设置 key 的 TTL 值,但关于哪些参数有效的文档很少。有没有办法让 Redis 从 php.ini 中获取正确的 TTL 值?或者在 URL 中传递它的方法?

最佳答案

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

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

关于php - PHP 中的 Redis session 忽略 php.ini 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25316579/

相关文章:

php - 使用 Symfony2 的购物车

java - 在 liferay 中删除 jsp portlet 问题中的 session 属性

node.js - Node IOREDIS : how to set expire time for a key?

Redis - 在主从关系中即时使用 CONFIG SET

javascript - 具有多个文件上传功能的 PHP 表单

php - 我怎么知道使用的是哪个 'php.ini' 文件?

php - codeigniter 4 url​​ 进入循环

PHP:重新加载时重置 session 生命周期

PHP - 脚本试图执行方法或访问不完整对象的属性

memory - Redis Pub Sub channel 内存