2016-09-14 8 views
0

У меня есть 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. Какие-нибудь советы?

+1

Вы уверены, что обработчик сеанса phpredis получает ваше новое session.gc_maxlifetime? (вы установили его в .ini-файле или по коду, если через .ini, а затем перезагрузили конфигурацию, если по коду, то вы начинаете сеанс после установки нового значения) –

+0

Я использую 'ini_set()' перед сеансом запускается. Я проверю, меняется ли файл .ini. – aurath

+0

Это трюк, жаль, что установка его через 'ini_set()' не работает, так как теперь мне приходится делать изменения php.ini на каждом из наших серверов, а не просто использовать исходный код для меня. – aurath

ответ

1

kiss-web был прав, по какой-то причине ini_set('session.gc_maxlifetime', 100000); не работал, но изменение настройки в php.ini сделало трюк.

 Смежные вопросы

  • Нет связанных вопросов^_^