3

有人告诉我 redis 是为分析而生的,我遇到了一些位图使用案例。它们在根据是/否(0/1)进行计数时很有用,但我找不到一种有效的方法来计算过去 10 天内至少登录 4 次的用户数量。因为 redis 在内存中运行,我尝试使用位图来跟踪每个用户的登录标志,并在我的笔记本电脑上使用 bitcount 到文件管理器,需要一分钟才能从大约 400 万用户的登录活动中返回计数。

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

4

1 回答 1

1

我认为您需要使用带有用户 ID 值和得分时间戳的 SortedSets。当用户登录时,该用户的分数(时间戳)更新为当前。比您可以获取最后登录的用户(ZREVRANGE)或在某个日期时间范围(ZRANGEBYSCORE)之间登录的用户

于 2012-12-31T09:52:25.040 回答