最近我发现了一篇不错的博文,介绍了在 Redis 的帮助下跟踪网站在线用户的两种方法。
1) 智能 key 和设置它们的到期时间 http://techno-weenie.net/2010/2/3/where-s-waldo-track-user-locations-with-node-js-and-redis
2) 集合-s 和相交 http://www.lukemelia.com/blog/archives/2010/01/17/redis-in-practice-whos-online/
你能判断哪个应该更快吗?为什么?
最佳答案
要了解特定用户是否在线,第一种方法会快得多 - 没有什么比读取单个 key 更快。
在特定页面上查找用户并不那么清楚(我还没有看到有关交集或通配符键性能的硬数据),但如果该集合大到足以在任一实现中引起性能问题,则不是无论如何都可以显示它们。
为了将用户匹配到好友列表,我可能也会采用第一种方法——即使是几百个 get 操作(检查列表中每个人的状态),如果这些集合有大量的记录且难以维护。
Redis 集合更适用于无法使用键完成的事情,特别是在获取集合中的所有项目比检查特定项目是否在集合中更重要的情况下。
关于performance - 使用 Redis 跟踪在线用户的 2 种方法。哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2644021/