Что использовать для управления сессиями? - PullRequest
12 голосов
/ 20 декабря 2011

Я пытаюсь провести некоторое исследование, чтобы найти лучший вариант управления сессиями в многосерверной среде, и мне было интересно, что люди нашли успешным и почему. Плюсы и минусы.

RDBMS - медленнее. Лучше использовать для других данных.

Memcached - вы не можете отключить сервер memcached без потери сеансов

Redis - устраняет проблему с memcached, но как насчет простоты масштабируемости? Отказоустойчивость?

Кассандра - имеет хорошую отказоустойчивость. Плюсы и минусы?

MongoDB, Другие?

Спасибо!

Ответы [ 3 ]

8 голосов
/ 20 декабря 2011

Лично я использую Cassandra для сохранения данных сессии php.Он сохраняет его в одном столбце в одной строке с помощью session_id: {session_data_as_json}, и я устанавливаю TTL для столбца, чтобы он автоматически выполнял очистку мусора.Работает угощение.

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

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

Примечание: я начал работать с собственным обработчиком сеанса php -> cassandra: https://github.com/sdolgy/php-cassandra-sessions - это показывает, как TTL устанавливаются с PHPCassa и Cassandra

5 голосов
/ 20 декабря 2011

Redis - исправляет проблему с memcached, но как насчет простоты масштабируемость? Отказоустойчивость?

Redis поддерживает репликацию , а предстоящий кластер также должен поддерживать разбиение данных между несколькими узлами.

0 голосов
/ 13 октября 2015

Немного поздно, но, возможно, кто-то заинтересован в продолжении.Мы используем Cassandra в качестве хранилища сессий и получаем доступ к нему через весеннюю сессию (с помощью собственного дополнения Spring-session-cassandra).Объекты в сеансе маршалируются / не маршалируются через Kryo (https://github.com/EsotericSoftware/kryo).

Эта настройка дает нам время сеанса от 1 до 2 мс и сохранение менее 1 мс:

enter image description here

enter image description here

Но в зависимости от кольцевой нагрузки во времени отклика есть некоторые выбросы:

enter image description here

...