Как digg (или другие высокие веб-сайты категории загрузки) хранят сеансы пользователя?

Как делает digg, или какой-либо другой веб-сайт интенсивного трафика хранят сеансы пользователя? Что они используют для хранения сеансов пользователя? Файловая система, DB (который?), кэш-память или оба?

Давайте вообразим простую ситуацию. Зарегистрированный пользователь установил флаг "Remember me" во время входа в систему. Мы установили сеансовые куки с датой истечения срока 1 год. Например, мы сохраняем сессию в кэш-памяти, но мы также должны вести учет этой сессии в DB (в моей версии). Только пользователи с флагом "Remember me" хранятся в DB. Действительно ли это - правильный способ сохранить сессии? Я имею в виду веб-сайты интенсивного трафика, конечно (с 2 или больше серверами приложений, 2 или больше базами данных, memecache серверы и т.д.). На небольшой сессии хранения веб-сайтов путем по умолчанию (в файловой системе) в порядке.

Я попытался искать Google, но не удался найти любую информацию об этом. Я считал некоторые решения из "Усовершенствованного PHP, программирующего" книгу, но основной диакритический знак был сделан к настройке обработчика хранения сессии.

Действительно надежда услышать хорошие идеи или ссылки!

Спасибо.

6
задан Daniel Vassallo 18 January 2010 в 17:34
поделиться

2 ответа

Они наиболее наверняка используют MEMCACHED или эквиваленты.

5
ответ дан 9 December 2019 в 22:34
поделиться

В дополнение к ответу Аликса вы можете быть заинтересованы в оформлении заказа этой статьи:

Недолгого выдержки:

Что вызвало MOMCACHED как магазин сессий:

вскоре после раздвижного вывода Digg V3 Нередажный магазин сеанса MySQL Аппаратное обеспечение разбилось. Это привело к Digg отключение Мы всегда планировали, что в такой случай, когда мы просто катили (тривиально) изменить, чтобы поставить сеансы в Memcached, а не MySQL, чтобы увидеть, как это готовы.


Итак, прежде чем вы ударили БД каждый раз для сеансов?

Да.

MySQL был доставлен отставать от вставок и Выбирает, чтобы иметь дело с сеансами. Наша проблема была на самом деле с Очистка старых сессий. Сценарий удалить старые сессии, несмотря на то, что довольно сложный в своих попытках Чтобы не перегрузить сеансы база данных, все еще повлияла на нее.

Мы поручием, что Memcached удалит Истекшие сессии с меньшим накладным расходом чем mysql.


Мы использовали InnoDB для сессий [до Memcached]. Это было не так Блокировка уровня таблицы или строки. Это было Уровень ОС. Используя memcached. Перед MySQL будет уменьшен нагрузка и позволило сценарию администратора сделать свою работу, но это подчеркивает Вопрос: почему даже есть MySQL за мемкатами вообще? Нет нужна или даже хочу не волатильный сеансы. (Важная заметка для читателя: вам может понадобиться или хотеть не волатильный сеансы).

«Почему даже у MySQL позади Memcached вообще?

6
ответ дан 9 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

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