Socket.IO& Redis(这一切都去了哪里?)

时间:2013-07-08 00:21:24

标签: node.js redis socket.io

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

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

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

我的目标是尝试找到清理旧密钥数据库的地方。我的问题是我找不到找到这些旧密钥的好方法。

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

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

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

谢谢, 森美

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

1 个答案:

答案 0 :(得分:1)

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