2013-03-18 146 views
1

我使用Perl催化劑Catalyst::Plugin::Session::State::CookieCatalyst::Plugin::Session::Store::Redis。我最多有2,000個用戶登錄,但我在Redis商店中擁有超過2百萬個密鑰。如何避免存儲太多會話?

大部分驗證都是通過API密鑰完成的。我想知道每個API調用是否會創建並存儲一個新會話(API調用中可能沒有cookie),或者如果網站的所有新訪問者都獲得了會話自動創建的會話。

它看起來像一個解決辦法是建立在默認情況下在很短的有效期(幾分鐘),並具有較長的到期覆蓋它,當用戶通過Web界面登錄。

我想知道的是將存儲的會話數量限制在最低限度的最佳方法。

回答

2

Redis的超時是爲這個目的,除非您有任何具體按用例,以防止所有的會話永不過期(我看不到任何),你應該把它設置爲實際的時間限制(默認值:300)。

但是這在舊版本的redis中有問題,所以在測試此功能之前,您需要安裝最新的redis來修復它。