2016-02-17 3 views
5

Может кто-нибудь объяснить, что такое сеансовая лотерея? Я подключил файл конфигурации сеанса по умолчанию для рамки Laravel.Сессионная лотерея

Вопросы: 1. В нем говорится, что некоторые драйверы сеанса должны вручную подметать их место для хранения. Может кто-нибудь описать этот процесс и почему это необходимо? Какие драйверы сеанса требуют этого действия? 2. Почему нужна лотерея? Если говорят, что какая-то форма хранения (база данных) заполнена, почему она должна быть случайной? Почему не может рама просматривать старые сессии, когда обнаруживает, что драйвер заполнен?

/* 
|-------------------------------------------------------------------------- 
| Session Sweeping Lottery 
|-------------------------------------------------------------------------- 
| 
| Some session drivers must manually sweep their storage location to get 
| rid of old sessions from storage. Here are the chances that it will 
| happen on a given request. By default, the odds are 2 out of 100. 
| 
*/ 

'lottery' => array(2, 100), 

ответ

4

Таким образом, сеанс представляет собой кусочек данных, который хранится на сервере в течение определенного времени.

Представьте, что вы используете папку с файлами для хранения сеансов. Должен быть момент, когда старые сессии должны быть очищены. Поскольку нет возможности автоматически проверять файлы каждые х часов, файлы сеансов проверяются на определенные запросы.
Этот параметр - вероятность того, что эта проверка произойдет. В этом случае 2 из 100 для каждого запроса.

Я думаю, что единственный драйвер сеанса, который в настоящее время нуждается в этом, - это драйвер базы данных.

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

+1

Это 2 из 100 запросов за один сеанс, или это 2 из 100 запросов от нескольких сеансов? Если это последний, кажется, что 2 из 100 слишком часты для любого сайта с приличным трафиком, это правильно? – Andrew

+0

Я понимаю необходимость подметать для драйвера базы данных, так как я хотел бы иметь ограничения на хранение для разных типов данных. Можете ли вы предвидеть какие-либо проблемы, если я снизил бы широкую частоту до крайне низкого уровня для драйвера сеанса файлов? например (2 из 1000000) – Andrew

+1

Разметка не произойдет в 2 из 100 запросов. Изменение развертки происходит 2 из 100 для каждого запроса. – Jerodev

Смежные вопросы