使用redis,如何根据一段时间内的登录次数识别活跃用户?

时间:2012-12-31 06:39:10

标签: redis

有人告诉我,redis是为解析而生的,我使用案例来看一些位图。它们在基于是/否(0/1)进行计数时非常有用,但我找不到一种有效的方法来计算在过去10天内至少登录4次的用户数。因为redis在内存中运行,我尝试使用位图来跟踪每个用户的跟踪登录标记,并使用bitcount到filer,在我的笔记本电脑上,花了一分钟从大约4Million用户的登录活动返回计数。

有什么方法可以解决这个问题吗?我想我的节点redis客户端和redis服务器之间的往返可能是问题,我会尝试批处理命令或lua脚本来查看它是否有效。

1 个答案:

答案 0 :(得分:1)

我认为你需要使用具有用户ID值的SortedSets和得分中的时间戳。 用户登录时,此用户的分数(时间戳)将更新为当前。你可以得到以太最后登录用户(ZREVRANGE)或用户,在某个日期时间范围内登录(ZRANGEBYSCORE)