良好的NoSQL数据库,用于读写密集型站点


Good NoSQL database for Write-Read Intensive Site

好的,我确实为我的客户提供了一个小型消息传递网站。好吧,它更可能是一个后评论系统(用PHP创建)。现在,我的客户想要一个可以对另一个现有评论进行评论并添加一些功能(如喜欢和标记)的系统。另一件事是我的客户在他的公司中大量使用现有系统,因为他们像Skype聊天一样使用它(这使得它变得写入阅读密集)。好吧,我的客户希望尽可能使用开源软件。所以我使用了mysql社区版。

关于我的故事太多了...所以我对 NoSql 数据库进行了为期 1 周的研究,我发现它适合我的需求,因为我的客户想要添加功能(这意味着不时添加和添加列和表。现在这些是引起我注意的nosql数据库系统。(好吧,如果你能建议其他NoSQL数据库系统,那就行了)

  1. 蒙戈数据库
  2. CouchDB
  3. 雷迪斯

现在我的问题是,这三者中哪一个对我的情况有好处?我还读到了一些关于这 3 个 nosql 数据库的坏东西

  1. MongoDB在其2.x版本上很糟糕
  2. CouchDB 很慢(我的客户端不想慢)
  3. Redis 是基于内存的,因此它只是按一定的时间间隔写入磁盘。 因此,当系统在间隔中间崩溃时,数据就会丢失

我想对此有一些意见,以及任何可以帮助我应对即将到来的情况的建议

MongoDB是一个流行的解决方案,也是我个人的偏好。Mongo的优点(除了无模式)是你可以拥有嵌套/嵌入的文档。因此,例如,您可以有一个注释,其中包含一个子注释数组,每个子注释都有自己的子注释数组。我不知道任何其他数据存储具有该功能。它也很快。

CouchDB有一些不错的功能,但Mongo非常相似,而且要好得多。

Redis与其他两个非常不同。它主要用作memcached的替代品。因此,它主要用于临时数据。虽然它内置了一些不错的pubsub功能。很多人同时使用MongoDB和Redis,但用途不同。