首先,我的目的是当用户关闭浏览器时用户 session 数据应该过期。现在的问题是,我的服务器需要 memcached 才能正常工作。因此,我想从已关闭浏览器的 memcached 中删除该特定用户 session 。我不想清除所有 memcached,以便剩余用户的 session 仍然存在。
最佳答案
在 Memcached 中,除非您想使用 some workarounds,否则无法列出特定命名空间中的所有键。 ,我不建议您在生产环境中使用。
一种替代方法是将所有与用户相关的 Memcached 键存储在一个集合中(也存储在 memcached 中)。设置 key 是使用用户 ID 生成的,因此您始终可以提前知道它的值,并且可以轻松检索它。
用户 session 结束后,您可以获取包含用户 key 列表的项目,然后删除每个 key 。请记住,包含 key 列表的 key 的到期时间应大于任何特定于项目的项目。
还值得一提的是Redis默认支持键迭代和集合,你可以配置它像 Memcached 一样工作。您可能想尝试一下。
关于javascript - 如何在 node.js 中获取所有 memcached 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12956669/