【问题标题】:How to avoid too many sessions stored?如何避免存储过多的会话?
【发布时间】:2013-03-06 09:03:17
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: perl session redis session-timeout catalyst


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-29
      • 1970-01-01
      • 2011-05-24
      • 1970-01-01
      • 2011-01-06
      • 2010-11-17
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多