У меня есть Redis, работающий с общим хранилищем сеансов для нескольких поддоменов, через которые я получаю доступ через PHPRedis. Сессионный файл cookie имеет приятный долгий срок службы, поэтому пользователям не нужно входить в систему слишком часто, но я считаю, что я должен войти в систему каждые полчаса в любом случае.Установка на сеансах PHPRedis
Рассмотрение экземпляра Redis показывает, что для каждой клавиши TTL по умолчанию установлено довольно мало (около 1500 секунд). В документах PHPRedis есть следующее:
Сеансы имеют продолжительность жизни, выраженную в секундах и хранящуюся в переменной INI «session.gc_maxlifetime». Вы можете изменить его с помощью ini_set().
Непонятно, относится ли это к времени жизни печенья или к TTL ключа Redis. Я установил session.cookie_lifetime
и session.gc_maxlifetime
на 100000 секунд для запуска теста, но похоже, что новые записи сеанса все еще начинаются с 1500-секундного TTL в Redis.
Довольно ясно, как установить TTL при непосредственном взаимодействии с Redis, но я не знаю, как установить это значение через диспетчер сеансов PHPRedis. Какие-нибудь советы?
Вы уверены, что обработчик сеанса phpredis получает ваше новое session.gc_maxlifetime? (вы установили его в .ini-файле или по коду, если через .ini, а затем перезагрузили конфигурацию, если по коду, то вы начинаете сеанс после установки нового значения) –
Я использую 'ini_set()' перед сеансом запускается. Я проверю, меняется ли файл .ini. – aurath
Это трюк, жаль, что установка его через 'ini_set()' не работает, так как теперь мне приходится делать изменения php.ini на каждом из наших серверов, а не просто использовать исходный код для меня. – aurath