redis 间隔相关排行榜

x8goxv8g  于 2022-10-31  发布在  Redis
关注(0)|答案(1)|浏览(155)

我正在尝试建立一个排行榜来记录某个事件在过去X分钟内发生的次数。有多个时间段(1分钟、5分钟、15分钟、30分钟和60分钟),然后我将从每个排行榜中查询前10名事件。
从我最初的研究来看,我认为我会选择Redis和排序集,但我不确定这是否是最优的?我遇到了this solution,基于此,我需要为每分钟设置一个密钥,但这似乎有点乏味。
最好的方法是什么?感谢任何意见:)

h43kikqp

h43kikqp1#

对于任何可能在未来发现这一点的人,这是我已经结束做的:

每个事件类型都有一个辅助排序集,它保存时间戳作为成员和分数(以便于过滤不再相关的时间戳)。

{ "event name": [ timestamps ] }

然后按时间范围设置主排序集(这是排行榜),将事件名称作为成员,将发生次数(在相关时间范围内)作为得分。

{ "event name": count }

每次处理新事件时,我都会从相关的助手集中过滤掉过期的时间戳,并更新每个排行榜中的计数。

相关问题