Я должен использовать Сессии Базы данных или Собственные Сессии Файла PHP?

Я только что отодвинулся от своей собственной платформы MVC до сообщества, поддерживал один (CodeIgniter). Я просто преобразовываю свои сессии в функции CodeIgniter и замечаю, что они, по умолчанию, хранят данные сессии в зашифрованном cookie. Альтернатива, которую они предлагают, является сессиями базы данных, но не сессиями файла серверной стороны как собственная библиотека PHP.

Теперь на моем сайте, я буду создавать безопасную панель бэкенда, таким образом, зашифрованный cookie не будет походить на умную опцию, но я particually не хочу должным быть соединяться со своей базой данных излишне, поскольку это не очень быстро (совместно использованный хостинг).

Я задаюсь вопросом, чем обоснованием позади них была бы не поддержка собственных сессий и рассматриваются ли сессии базы данных или сессии файла серверной стороны обычно как более оптимальный вариант.

Спасибо.

9
задан Ryall 11 January 2010 в 21:49
поделиться

1 ответ

В основном, для хранения данных сеанса, люди обычно используют одно из трех решений:

  • файлов (по умолчанию)
  • база данных
  • Memcached

файлы являются наиболее используемыми, так как это По умолчанию - и он работает отлично в большинстве случаев - но есть хотя бы одна ситуация, в которой она не работает: когда у вас есть несколько серверов, и ваши пользователи сбалансированы на тех (то есть когда 1 пользователь не всегда на том же сервере) .

В таком виде ситуации необходимо иметь центральное / общее место для хранения сеансов - и базы данных соответствуют этому описанию; И легко настроить, а также приложения PHP обычно работают с базой данных.

И как базы данных не масштабируются, что хорошо, особенно для пишетов, вы иногда используете, вместо этого, что-то вроде Memcached: Mecanism, который хранит данные в RAM (быстрее) , Accross как можно больше серверов. Хотите / нужно (масштабируется хорошо) .


Какое решение вы должны использовать?

Ну, в каком из этих ситуаций вы находитесь?

  • Файлы в порядке, по крайней мере, до тех пор, пока один пользователь всегда на том же сервере
  • , если вам нужна база данных Для вашего приложения вы можете хранить сеансы в базе данных: нет необходимости в каких-либо дополнительных настройках (например, Drupal делает это по умолчанию) .
  • MEMCACHED требует больше установки, но, вероятно, лучшее решение, если у вас действительно тяжелый трафик ...
12
ответ дан 4 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: