Google cloud platform Redis(Memorystore)清除键

Google cloud platform Redis(Memorystore)清除键,google-cloud-platform,express-session,google-cloud-memorystore,Google Cloud Platform,Express Session,Google Cloud Memorystore,我正在使用express sessions和Redis(Memorystore)5.0来保存会话,Redis似乎在一个键上的TTL用完之前清除了所有键(随机地,而不是每隔一段时间)。只留下几个备份条目 从TTL判断,此条目的有效期应为另一周 我以前从未配置过Redis实例,很可能是我错误地配置了这个实例,希望您能提供一些见解 此外,这是我运行monitor时得到的结果 避免通过计算引擎的外部IP暴露Memorystore实例。加上 Memorystore实例当前需要,这将导致一个 将允许任何人

我正在使用express sessions和Redis(Memorystore)5.0来保存会话,Redis似乎在一个键上的TTL用完之前清除了所有键(随机地,而不是每隔一段时间)。只留下几个备份条目

从TTL判断,此条目的有效期应为另一周

我以前从未配置过Redis实例,很可能是我错误地配置了这个实例,希望您能提供一些见解

此外,这是我运行monitor时得到的结果


避免通过计算引擎的外部IP暴露Memorystore实例。加上 Memorystore实例当前需要,这将导致一个 将允许任何人在您的实例上读取、写入和执行脚本。在最坏的情况下,它将允许某人使用您的实例挖掘加密货币,从而导致项目或帐户暂停

有多个联机指南可远程连接到Memorystore。我建议通过以下线程通过SSH进行连接:

作为参考,我将把答案粘贴在这里(贷记发布者):

“如果您的Redis机器具有内部IP地址10.0.0.3,您应该:

gcloud compute instances create redis-forwarder --machine-type=f1-micro
gcloud compute ssh redis-forwarder -- -N -L 6379:10.0.0.3:6379

只要保持ssh隧道打开,就可以连接到localhost:6379“

您是否在Memorystore实例上配置了
maxmemory策略
?如果是这样的话,可能是因为实例内存已满,并且某些带有TTL的密钥必须被逐出,以便在到达TTL之前为新的写入操作腾出空间。如果没有,那么我建议您连接到Memorystore实例并运行该命令,并尝试捕获删除背后的原因。这里有一个文档:我应该补充一点,我创建了一个计算引擎实例,用于通过外部IP访问Redis,当我不这样使用它时,这种行为不会持续。但我希望能够远程访问Redis实例。我已经在互联网上查找了那些脚本,我认为它们不应该在那里,因为它似乎是一个恶意脚本。此外,您还提到,如果不连接GCE实例,则不会发生此问题。您应该检查实例,或者使用新实例连接到Memorystore。