我将 Perl Catalyst 与 Catalyst::Plugin::Session::State::Cookie
和 Catalyst::Plugin::Session::Store::Redis
一起使用>。我最多有 2,000 个用户登录,但我的 Redis 存储中有超过 200 万个 key 。
大多数身份验证都是通过 API key 完成的。我想知道是否每个 API 调用都会创建并存储一个新 session (API 调用中可能没有 cookie),或者网站的所有新访问者是否都会自动创建一个 session 。
看起来解决方案是默认设置一个非常短的过期时间(几分钟),并在用户通过 Web 界面登录时用更长的过期时间覆盖它。
我想知道将存储的 session 数限制在最低限度的最佳方法是什么。
最佳答案
Redis 超时就是为了这个目的,除非你有任何特定的紧迫用例来防止你的所有 session 过期(我看不到任何)你应该将它设置为实际时间限制(默认值:300)。
然而,这在旧版本的 redis 中存在问题,因此在测试此功能之前,您需要安装最新的 redis 来修复它。
关于perl - 如何避免存储过多的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469841/