用于实时消息传递的存储系统是什么?

时间:2014-01-08 17:37:57

标签: mysql ruby-on-rails api mongodb redis

我正在开发一个实时消息应用程序(例如WhatsApp和co),我面临一个大问题。 应用程序本身并不像市场上那样复杂。但是,我不确定我应该使用哪种存储系统。我有几个想法,但我不知道哪一个比其他更好:

  • 一个简单的mysql数据库,包含消息/对话/对话之间的关系
  • mongodb,其中包含对话中所有用户的每次会话的复制
  • 一个redis商店,其中包含对话中所有用户的复制对话。

我不知道哪一个更适合我想做的事情。如果您有一些建议,那么我可以选择正确的解决方案。 (或者,如果有一个解决方案,我还没有列出哪个更好:))

注意:我的API是在Ruby On Rails中开发的(如果这有助于做出决定)

1 个答案:

答案 0 :(得分:1)

数据量和读/写次数应该是引导您做出决定的关键因素。如果数据量和读/写数量不是很大,你可以使用mysql。我相信每分钟只有几百个读/写的TB数据很少是SQL数据库领域。除此之外,它是NoSQL世界。但是,如果选择NoSQL解决方案,您应该准备好应对非SQL数据存储设计,查询实现和实现最终一致性的复杂性。一切顺利!