计算风暴中的十大结果

时间:2013-06-18 03:59:45

标签: redis apache-storm

我正在从redis Server读取句子并计算每个单词的出现次数。现在我想根据计算来计算前10个单词。我有一个Spout来读取Redis Server中的句子,一个Bolt将句子分成单词,一个Bolt来计算单词。

根据计数找到前十个单词的方法应该是什么?

2 个答案:

答案 0 :(得分:0)

假如你必须在最后X分钟做一个顶部,用X分钟后用刻度元组配置螺栓直到然后继续计算螺栓中的单词。在遇到tick元组发出前十项时,可以将计数器保存在内存树映射中(取决于用例和数据大小)

现在说你必须在Redis数据结构中有大数据大小维持计数前10名,并根据你的需要在每Y秒后排名前10位。

对于tick元组,请参阅Michael的博客@ http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/

答案 1 :(得分:0)

使用SortedSet将单词的频率写入Redis。对于Storm处理的每个单词,它使用ZINCRBY在Redis中递增该单词的计数器。

SortedSet中的值按值排序,因此您可以使用ZREVRANGE这样检索前十名。

ZREVRANGE myset 0-9 WITHSCORES