在插入rethinkdb之前,如何使用rediscachingtwitterstream?
我在哪里
我有一个简单的node.js twitterstream消费者跟踪各种井号标签。 通常,这些都是趋势标签,这意味着大量的twitter json正在stream入我的消费者。 我不做在消费者的任何处理的Twitter JSON。
我想要的是
我想在rethinkdb中存储微博json对象。
假设
由于tweets的数量(以及所述卷的不可预测性),我应该避免将tweet json对象插入到rethinkdb中,因为它们被消费(因为tweets进入消费者的速率可能比rethinkdb可以写入的速率更快那些推文)。
由于Redis的处理速度足够快,因此可以将推文json对象直接推送到redis,并让另一个进程将这些推文插入到rethinkdb中。
我希望学习的东西
- 我的假设是否正确?
-
这个build筑是否有意义? 如果不是,你能build议一个更好的select吗?
-
如果我的假设是正确的,这个架构是有意义的,
一个。 使用redis作为推文的缓冲区的最佳方式是什么?
湾 为了在rethinkdb中执行插入操作,读取(和更新/清除)redis缓冲区的最佳方法是什么?
我们在生产中使用这种架构。 如果您要处理的数据量不超过redis的最大内存限制,则可以采用这种方式。 还需要照顾停机时间。
使用redis作为推文的缓冲区的最佳方式是什么?
你可以使用一个redis队列。 制作人一直推到哪里。 而你的消费者从尾巴消耗,并填充到你的分贝。
你可以使用这个解决schemeRedisstream行列表项目由于你有类似的需求项目的数量 (生产者是沉重的,消费者需要比一个一个popup消耗快一点)