2013-03-18 119 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来修复它。