防止为connect-redis会话设置TTL以允许allkeys-lru用于内存策略

时间:2012-11-11 21:10:23

标签: node.js express redis connect

我使用connect-redis和redis包设置了一个非常简单的RedisStore。我有一个专门用于我的会话商店的盒子,并希望使用allkeys-lru maxmemory策略进行驱逐而不是TTL。

看起来连接redis' store允许不设置TTL(我在创建商店时尝试在options对象中使用-1,看起来设置TTL为0)。有关如何做到这一点的任何建议吗?

另外,有谁知道为什么这可能是一种不好的做法?

1 个答案:

答案 0 :(得分:2)

查看relevant source code,似乎connect-redis不允许您在不使密钥到期的情况下使用它。在我看来,你有两个选择:

  • 编写自己的会话商店,继承自connect-redis的RedisStore但覆盖set
  • 指定一个巨大的maxAge,以便密钥在将来过期。

我没有看到没有过期密钥和使用lru的问题。