Как использовать MongoDbSessionHandler для сохранения сессий в базе данных MongoDB
Дата обновления перевода 2023-06-29
Как использовать MongoDbSessionHandler для сохранения сессий в базе данных MongoDB
Хранилище сессий Symfony по умолчанию записывает информацию о сессиях в файлы. Некоторые средние и большие по размеру веб-сайты используют базу данных NoSQL под названием MongoDB для того, чтобы хранить значения сессий, а не файлы, так как базы данных проще использовать и масштабировать в мульти-серверном окружении.
Symfony имеет встроенное решение для хранилища сессий DB NoSQL под названием MongoDbSessionHandler. Чтобы использовать это, вам нужно:
A) Зарегистрировать сервис MongoDbSessionHandler
;
B) Сконфигурирвать его под конфигурацией framework.session.handler_id
.
Чтобы увидеть, как конфигурируется схожий обработчик, см. Как использовать PdoSessionHandler для хранения сессий в DB.
Установка сбора MongoDB
Вам не нужно ничего делать для того, чтобы инициализировать сбор сессии. Однако, вам может захотеться добавить оглавление, чтобы улучшить производительность сбора мусора. Из оболочки MongoDB:
1 2
use session_db
db.session.ensureIndex( { "expires_at": 1 }, { expireAfterSeconds: 0 } )