2

我将 Socket.IO 连接到 RedisStore 以便使用“socket.set()”将其信息存储在我的 redis 数据库中。

它通过创建某种形式的随机密钥来做到这一点,我只能假设它是套接字的唯一标识符。

我的问题是这个。据我所知,我保存的这些数据永远不会被删除,除非我以某种方式手动删除它。每个新套接字都被保存和存储,但除非我在断开连接时做某事,否则永远不会删除旧套接字。然而,这意味着如果我重新启动节点或发生崩溃等,这些数据将永远存在。

我的目标是试图找到某个地方来清理旧密钥的数据库。我的问题是我很难找到找到这些旧钥匙的好方法。

关于我想到的解决方案的想法是将这些键名存储在某种集合中。然后我可以遍历它们并检查它们在启动时是否仍在使用。但是,据我所知,我无法找到正在使用的密钥。

另一个虽然是我可以尝试遍历所有键,但这似乎是个坏主意。我也无法正确区分他们使用的键和我使用的键,除非我特别避免使用特定长度的键。

所以我的问题是,是否有人有保持数据库清洁的好方法,或者我如何跟踪 socket.io 在我的数据库中使用的密钥。

谢谢,萨米

ps如果您需要更多信息或者我不清楚,请告诉我,我会尽力解释。

4

1 回答 1

1

如果问题只是需要删除不再使用的密钥,为什么不使用 Redis 的ttlexpire。您可以在每次使用时设置过期值,或一些类似的设置,并将其设置为非常高。如果某些内容在一周内没有使用,它将在幕后自动为您删除。

于 2013-07-08T02:27:03.123 回答