Какие альтернативы переменным сеанса PHP? - PullRequest
4 голосов
/ 07 февраля 2012

Я пишу новый веб-сайт, и я хотел бы убедиться, что он легко масштабируется, если я когда-нибудь доберусь до места, где мне нужно разместить сайт на нескольких машинах с балансировщиком нагрузки.

Пользователь сайта может быть аутентифицирован.Другими словами, мне нужно поддерживать некоторую информацию о состоянии.Моим первым рефлексом было использование переменных Session, но затем я собираюсь ограничиться одной машиной.Я знаю, что существуют способы хранения переменных сеанса снаружи (в БД, redis, memcached), но это единственные опции?

Какие альтернативы переменным сеанса?Как это делают Facebook и другие крупные веб-сайты?

PS Я не ищу другой обработчик сеансов (БД, redis и т. Д.).Я хотел бы знать, есть ли способ полностью избавиться от переменных сеанса.

Ответы [ 2 ]

8 голосов
/ 07 февраля 2012

Когда-нибудь слышали о session_set_save_handler ?Он позволяет вам использовать механизмы, отличные от обработчика сеанса PHP по умолчанию (тот, который записывает файлы sess_xxxxxxxxxxxx в каталог tmp).

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

1 голос
/ 07 февраля 2012

Вы можете изучить кеширование, например, используя Zend cache или APC cache , например.

...