1

我将 Perl Catalyst 与Catalyst::Plugin::Session::State::Cookieand一起使用Catalyst::Plugin::Session::Store::Redis。我最多有 2,000 个用户登录,但我的 Redis 存储中有超过 200 万个密钥。

大多数身份验证都是通过 API 密钥完成的。我想知道是否每个 API 调用都创建并存储了一个新会话(API 调用中可能没有 cookie),或者网站的所有新访问者是否都会自动创建一个会话。

看起来一个解决方案是默认设置一个非常短的到期时间(几分钟),并在用户通过 Web 界面登录时用更长的到期时间覆盖它。

我想知道这是将存储的会话数限制在最低限度的最佳方法。

4

1 回答 1

2

Redis Time out 就是为此目的,除非您有任何特定的紧迫用例来防止所有会话过期(我看不到任何会话),否则您应该将其设置为实际时间限制(默认值:300)。

但是,这在旧版本的 redis 中存在问题,因此在测试此功能之前,您需要安装最新的 redis 以修复它。

于 2013-03-29T05:46:03.457 回答