perl - 如何避免存储过多的 session ?

标签 perl session redis session-timeout catalyst

我将 Perl Catalyst 与 Catalyst::Plugin::Session::State::CookieCatalyst::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/

相关文章:

windows - Langage D 在 Windows 包 tinyredis-2.1.1 上构建错误 : undefined identifier `EWOULDBLOCK` dmd failed with exit code 1

database - Redis:错误表中的错误数据

perl - 如何使用 Perl 列出目录中的所有文件?

mysql - 使用DBI将 float 上传到MySql

php - 使用php将 session 值保存在数据库中

session - 将 Controller 留在zend框架中时如何清除 session ?

ruby-on-rails - 如何运行 GenieACS?

perl - 如何将依赖于另一个属性的属性约束从触发器提升到类型细化中?

perl - 为散列中的 * 字符赋值

php - 访问脚本 1、脚本 2 中设置的 session 变量。 PHP