2016-02-17 12 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

したがって、セッションは一定の時間サーバーに格納されるデータです。

ファイルを含むフォルダを使用してセッションを保存するとします。古いセッションをクリアしなければならない瞬間があります。 x時間ごとに自動的にファイルをチェックする方法がないため、セッションファイルは特定の要求でチェックされます。
この設定は、このチェックが行われる可能性があります。この場合、リクエストごとに100のうち2つが必要です。

私は現在、これを必要とするだけのセッションドライバがデータベースドライバだと思います。

それがいっぱいになったときにストレージを掃引した場合、新しいセッションはストレージがsweepedされた刚性を開始することができなくなる可能性があり。
リクエストごとにストレージをスウィープすると、すべてのリクエストが非常に遅くなります。

+1

これは1回のセッションで100回のリクエストのうち2回、または複数回から100回のリクエストのうち2回ですか?それが後者の場合は、100のうち2/3がまともなトラフィックのあるサイトではあまりにも頻繁に表示されるように見えますが、それは正しいですか? – Andrew

+0

異なるデータタイプにストレージの制限があることをイメージするので、データベースドライバの掃除の必要性を理解しています。ファイル・セッション・ドライバーの掃引周波数を極端に低くすると、問題を見逃すことはできますか?例えば(2 of 1000000) – Andrew

+1

100リクエストのうち2リクエストでスイープは発生しません。スイープの変化は、リクエストごとに100のうち2つです。 – Jerodev

関連する問題