我被告知redis是为分析而生的,我偶然发现了一些使用案例的位图。它们在基于yes/no(0/1)进行计数时很有用,但我找不到一种有效的方法来计算在过去10天内至少登录4次的用户数量。因为redis在内存中运行,所以我尝试使用位图来跟踪每个用户的登录标志,并使用bitcount到filer,在我的笔记本电脑上,我花了一分钟的时间从大约400万用户的登录活动中返回计数。
有没有办法解决这个问题?我猜我的节点redis客户端和redis服务器之间的往返可能是问题所在,我将尝试使用批处理命令或lua脚本,看看它是否有效。
发布于 2012-12-31 17:52:25
我认为你需要使用SortedSets,在值中使用用户id,在分数中使用时间戳。当用户登录时,该用户的分数(时间戳)更新为当前。
https://stackoverflow.com/questions/14098358
复制相似问题