【发布时间】:2013-07-08 00:21:24
【问题描述】:
我已将 Socket.IO 连接到 RedisStore,这样使用“socket.set()”会将其信息存储在我的 redis 数据库中。
它通过创建某种形式的随机密钥来做到这一点,我只能假设它是套接字的唯一标识符。
我的问题是这个。据我所知,我保存的这些数据永远不会被删除,除非我以某种方式手动删除它。每个新的套接字都会被保存和存储,但除非我在断开连接时做一些事情,否则旧的永远不会被删除。但是,这意味着如果我重新启动节点或发生崩溃等,这些数据将永远存在。
我的目标是寻找某个地方来清理旧密钥的数据库。我的问题是我很难找到找到这些旧密钥的好方法。
我想到的解决方案是将这些键名存储在某种集合中。然后我可以遍历它们并检查它们在启动时是否仍在使用。但是,据我所知,我无法找到正在使用的密钥。
另一个虽然是我可以尝试遍历所有键,但这似乎是个坏主意。我也无法正确区分他们使用的键和我使用的键,除非我特别避免使用特定长度的键。
所以我的问题是,是否有人有保持数据库清洁的好方法,或者我如何跟踪 socket.io 在我的数据库中使用的密钥。
谢谢, 萨米
附言如果您需要更多信息或我不清楚,请告诉我,我会尽力解释。
【问题讨论】: