使用Redis跟踪在线用户的2种方法。哪一个更快?

时间:2010-04-15 09:14:41

标签: performance comparison redis

最近,我发现了一篇很棒的博客文章,介绍了在Redis的帮助下跟踪网站在线用户的两种方法。

1)智能钥匙并设置过期时间 http://techno-weenie.net/2010/2/3/where-s-waldo-track-user-locations-with-node-js-and-redis

2)Set-s和intersects http://www.lukemelia.com/blog/archives/2010/01/17/redis-in-practice-whos-online/

你能判断哪一个更快,为什么?

1 个答案:

答案 0 :(得分:4)

要知道某个特定用户是否在线,第一种方法会快得多 - 没有什么比阅读单个密钥更快。

在特定页面上查找用户不是很清楚(我没有看到交叉或通配符键的性能上的硬数字),但是如果该集合足够大以致在任一实现中都导致性能问题,那么它不是实际上无论如何都要展示它们。

为了将用户匹配到朋友列表,我可能也会采用第一种方法 - 即使是几百次获取操作(检查列表中每个人的状态)也应该优于多个集合上的交集,如果这些集合具有大量的记录并且难以维护。

Redis集更适合于无法使用键完成的操作,特别是在获取集合中的所有项目比检查特定项目是否在集合中更重要的情况下。