Использование `Rack:: Session:: Pool` над` Rack:: Session:: Cookie` - программирование
Подтвердить что ты не робот

Использование `Rack:: Session:: Pool` над` Rack:: Session:: Cookie`

Каковы различные варианты использования Rack:: Session:: Pool и Rack:: Session:: Cookie?

Насколько я понимаю (исправьте меня, если я ошибаюсь):

  • Cookie хранит все пары ключей сеанса: значения непосредственно в файле cookie (упорядоченно)
  • Pool хранит только идентификатор в файле cookie и сохраняет оставшуюся часть хэша сеанса в @pool

Итак: каковы последствия/причины выбора одного из них? что @pool? Почему Pool нужно открыть другой открытый интерфейс из Cookie? Почему документации не хватает?

4b9b3361

Ответ 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