在插入rethinkdb之前,如何使用rediscachingtwitterstream?

我在哪里

我有一个简单的node.js twitterstream消费者跟踪各种井号标签。 通常,这些都是趋势标签,这意味着大量的twitter json正在stream入我的消费者。 我不做在消费者的任何处理的Twitter JSON。

我想要的是

我想在rethinkdb中存储微博json对象。

假设

由于tweets的数量(以及所述卷的不可预测性),我应该避免将tweet json对象插入到rethinkdb中,因为它们被消费(因为tweets进入消费者的速率可能比rethinkdb可以写入的速率更快那些推文)。

由于Redis的处理速度足够快,因此可以将推文json对象直接推送到redis,并让另一个进程将这些推文插入到rethinkdb中。

我希望学习的东西

  1. 我的假设是否正确?
  2. 这个build筑是否有意义? 如果不是,你能build议一个更好的select吗?

  3. 如果我的假设是正确的,这个架构是有意义的,

    一个。 使用redis作为推文的缓冲区的最佳方式是什么?

    为了在rethinkdb中执行插入操作,读取(和更新/清除)redis缓冲区的最佳方法是什么?

我们在生产中使用这种架构。 如果您要处理的数据量不超过redis的最大内存限制,则可以采用这种方式。 还需要照顾停机时间。

使用redis作为推文的缓冲区的最佳方式是什么?

你可以使用一个redis队列。 制作人一直推到哪里。 而你的消费者从尾巴消耗,并填充到你的分贝。

http://redis.io/commands#list

你可以使用这个解决schemeRedisstream行列表项目由于你有类似的需求项目的数量 (生产者是沉重的,消费者需要比一个一个popup消耗快一点)