Использование `Rack:: Session:: Pool` над` Rack:: Session:: Cookie`
Каковы различные варианты использования Rack:: Session:: Pool и Rack:: Session:: Cookie?
Насколько я понимаю (исправьте меня, если я ошибаюсь):
-
Cookie
хранит все пары ключей сеанса: значения непосредственно в файле cookie (упорядоченно)
-
Pool
хранит только идентификатор в файле cookie и сохраняет оставшуюся часть хэша сеанса в @pool
Итак: каковы последствия/причины выбора одного из них? что @pool
? Почему Pool
нужно открыть другой открытый интерфейс из Cookie
? Почему документации не хватает?
Ответы
Ответ 1
Вы правы, Session::Cookie
маршалинг и сохранение сеансов в файлах cookie.
Session::Pool
вместо этого сохраняет сеансы в памяти.
Pool
имеет некоторые преимущества:
- faster, no marshaling needed
- you can keep any objects with it(read ones that can not be marshaled)
Но когда вы перезагружаете приложение, все сеансы теряются.
С Cookie
вместо этого у вас будут перезапущенные постоянные сессии по цене маршалинга.
Альтернативы - Session:: Memcache, Session:: Mongo