我正在使用Perl Catalyst与Catalyst::Plugin::Session::State::Cookie
和Catalyst::Plugin::Session::Store::Redis
。我最多有2,000名用户登录,但我的Redis商店中有超过2百万个密钥。
大多数身份验证都是通过API密钥完成的。我想知道每个API调用是否会创建和存储新会话(API调用中可能没有cookie),或者网站的所有新访问者是否自动创建了会话。
看起来一个解决方案是默认设置一个非常短的过期(几分钟),并在用户通过Web界面登录时覆盖更长的过期时间。
我想知道这是将存储会话数限制到最低限度的最佳方法。
答案 0 :(得分:2)
Redis Time out就是为了这个目的,除非你有任何特定的紧急用例来阻止你的所有会话到期(我看不到),你应该把它设置为实际时间限制(默认值:300)。
然而,在旧版本的redis中存在问题,所以在测试此功能之前,您需要安装最新的redis来修复它。