【发布时间】:2021-04-01 21:41:20
【问题描述】:
我正在使用 express-sessions 和 Redis(Memorystore) 5.0 来保存会话,并且似乎 Redis 在密钥上的 TTL 用完之前清除了所有密钥(随机而不是间隔)。只留下几个备份条目
从 TTL 来看,该条目应该还有一周的有效期。
我以前从未配置过 Redis 实例,很可能是我错误配置了这个实例,我们将不胜感激。
另外,这是我运行监视器时得到的结果
【问题讨论】:
-
您是否在 Memorystore 实例上配置了
maxmemory-policy?如果是这样,可能是由于您的实例内存已满,并且必须驱逐某些具有 TTL 的键,以便在达到 TTL 之前为新的写入腾出空间。见cloud.google.com/memorystore/docs/redis/… -
如果没有,那么我建议您连接到您的 Memorystore 实例并运行 monitor 命令并尝试找出删除背后的原因。这是一个文档:cloud.google.com/memorystore/docs/redis/…
-
我应该补充一点,我创建了一个计算引擎实例,用于通过外部 IP 访问 Redis,当我不以这种方式使用它时,这种行为不会持续存在。但我希望能够远程访问 Redis 实例。
-
我在网上查了这些脚本是什么,我认为它们不应该在那里,因为它似乎是一个恶意脚本。此外,您提到如果您不连接 GCE 实例,则不会发生此问题。您应该检查您的实例,或使用新实例连接到 Memorystore。
标签: google-cloud-platform express-session google-cloud-memorystore