Обычно для хранения данных сеанса люди обычно используют одно из трех решений:
- файлы (по умолчанию)
- база
- Memcached
Файлы используются наиболее часто, так как они используются по умолчанию - и в большинстве случаев они работают отлично - но есть по крайней мере одна ситуация, когда она не работает: когда у вас несколько серверов, а ваши пользователи загружены -балансирован на тех (т.е. когда 1 пользователь не всегда находится на одном и том же сервере) .
В такой ситуации необходимо наличие центрального / общего места для хранения сеансов - и базы данных соответствуют этому описанию; и также просты в настройке - и приложения PHP обычно работают с базой данных.
И поскольку базы данных не так хорошо масштабируются, особенно для записи, вы иногда используете вместо этого что-то вроде memcached: механизм, который хранит данные в ОЗУ (быстрее) , охватывающий столько серверов, сколько вы хочу / нужен (хорошо масштабируется) .
Какое решение вы должны использовать?
Ну, в каких из этих ситуаций вы находитесь?
- Файлы в порядке, по крайней мере, если один пользователь всегда находится на одном сервере
- Если вам нужна база данных для вашего приложения, вы можете хранить сеансы в базе данных: не нужно никаких дополнительных настроек (Например, Drupal делает это по умолчанию) .
- memcached требует дополнительной настройки, но, вероятно, это лучшее решение, если у вас очень большой трафик ...