【问题标题】:How to get All memcached data in node.js?如何在 node.js 中获取所有 memcached 数据?
【发布时间】:2012-10-09 00:43:40
【问题描述】:

首先,我的目的是当用户关闭浏览器时,用户会话数据应该过期。现在的问题是,我的服务器需要 memcached 才能正常工作。因此,我想从已关闭浏览器的 memcached 中删除该特定用户会话。我不想清除所有 memcached 以便剩余用户的会话仍然存在。

【问题讨论】:

  • 您是否为此使用connect-memcached?它应该已经为您解决了这个问题。
  • 是的,我正在使用 connect-memcached,但问题是它只返回带有 request.sessionID 的当前用户密钥,但我想要所有用户密钥。

标签: javascript node.js memcached express


【解决方案1】:

在 Memcached 中,除非您想使用 some workarounds,否则无法列出特定命名空间中的所有键,我不建议您在生产环境中使用。

另一种方法是将所有与用户相关的 Memcached 键存储在一个集合中(也存储在 memcached 中)。 set key 是使用用户 id 生成的,因此您始终可以提前知道它的值并轻松检索它。

一旦用户会话结束,您可以获取包含用户密钥列表的项目,然后删除每个密钥。请记住,包含密钥列表的密钥的过期时间应大于任何特定于项目的项目。

另外值得一提的是Redis默认支持key迭代和set,你可以配置它像Memcached一样工作。你可能想试一试。

【讨论】:

  • 我不能使用 Redis 作为只处理 Memcached 的服务器,我没有更改服务器的权限。请提出任何其他解决方法,通过它我可以获得所有密钥。
  • 我已经在我的回答中向您建议了一种不涉及更改基础架构的方法。
猜你喜欢
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
相关资源
最近更新 更多