Я использую Redis в качестве бэкенда для управления сессиями php в многосерверной конфигурации.
Redis использует session.gc_maxlifetime
для установки TTL, но TTL не обновляется при чтении сеанса. Это только обновления на записи.
Это означает, что я должен добавить изменение в значение сеанса $_SESSION ['dummy'] = time();
на каждый запрос, чтобы сохранить сеанс в живых.
Это ожидаемое поведение?
я должен изменить на memcached или написать собственный модуль сессии php?
Redis не сбрасывает TTL автоматически, когда вы читаете ключ. Если вы хотите обновить TTL сеанса при его чтении, вы должны сделать это в приложении через конвейер.
Других решений пока нет …