MongoDB / CouchDB用于存储文件+复制?

如果我想存储大量文件+复制数据库,那么NoSql数据库对于这类工作来说最适合什么?

我正在测试MongoDB和CouchDB,这些数据库非常好,易于使用。 如果有可能,我会用其中一个来存储文件。 现在我看到了Mongo和Couch之间的区别,但我无法解释哪一个更适合存储文件。 如果我在谈论存储文件,我的意思是10-50MB的文件,但也可能是50-500MB的文件 - 也许很多更新。

我在这里找到一张不错的表格:

在这里输入图像描述

http://weblogs.asp.net/britchie/archive/2010/08/17/document-databases-compared-mongodb-couchdb-and-ravendb.aspx

仍然不确定哪些属性是最适合文件存储和复制的。 但也许我应该选择另一个NoSQL数据库?


那张桌子过时了:

  • 主从复制已被弃用,以支持初学者的副本集,并且一致性也是错误的。 您需要完全重读MongoDB文档的这一部分。
  • Map / Reduce只有JavaScript,没有其​​他人。
  • 我不知道附件的含义是什么,但GridFS是内置于驱动程序中的存储标准,可帮助您更轻松地在MongoDB中存储大文件。 元数据也通过这种方法得到支持。
  • MongoDB在2.2版本中,所以它之前提到的任何版本都已经过时(即分片和单服务器耐久性)。
  • 我没有使用CouchDBs接口存储文件的个人经验,但如果两者之间几乎没有任何差异,我不会感到惊讶。 我认为这部分对我们来说太过主观,我们不能回答,你只需要选择哪一套更好。

    实际上可以构建多区域的MongoDB集群(其中S3存储区不能在没有工作的情况下进行复制),并通过MongoDB将世界上特定地区最多的文件复制到这些集群中。

    我的意思是我有时发现的主要结果是MongoDB可以像S3和Cloudfront一样组装起来,这非常棒,因为您拥有冗余存储和分布数据的能力。

    不过,据说S3在这里是非常有效的选择,我会认真试一试,你可能不会在内容网络中寻找和我一样的东西。

    数据库的文件存储并不是没有严重的缺点,但速度不应该是一个很大的问题,因为你应该从一个没有Cloudfront的前S3获得相同的速度,你应该从MongoDB得到相同的速度(记住S3是一个冗余存储网络,而不是CDN)。

    如果你使用S3,你会在你的数据库中存储一行指向该文件并包含有关它的元数据。


    Dustin Sallings(Couchbase的创始人之一,memcached的spymemcached和核心贡献者的创建者)以及使用Couchbase和Go的Marty Schoch有一个名为CBFS的项目。

    这是一个具有冗余和复制的无限节点文件存储。 基本上你自己的S3支持很多不同的硬件和尺寸。 它使用REST HTTP PUT / GET / DELETE等,非常容易使用。 非常快,非常强大。

    Github上的CBFS :https://github.com/couchbaselabs/cbfs

    协议 :https://github.com/couchbaselabs/cbfs/wiki/Protocol

    博客文章 :http://dustin.github.com/2012/09/27/cbfs.html

    多种硬件 :https://plus.google.com/105229686595945792364/posts/9joBgjEt5PB

    其他酷视觉

    http://www.youtube.com/watch?v=GiFMVfrNma8

    http://www.youtube.com/watch?v=033iKVvrmcQ

    如果您有任何问题,请与我联系,我可以让您联系。


    您是否将Amazon S3视为一种选择? 它高度可用,经过验证并具有冗余存储等。

    虽然我个人非常喜欢CouchDB,因为它对node.js非常适用,但缺点是如果您不想浪费太多磁盘空间,则需要定期压缩它。 在你的情况下,如果你要对相同的文档进行大量更新,那可能是一个问题。

    由于我还没有使用MongoDB,所以我不能真正提交,但如果文件存储是您最关心的问题,那么请查看S3和类似文件,因为它们完全集中在filestorage上。

    您可以将您将元数据存储在NoSql或Sql数据存储中的两个元素与实际文件存储在单独的文件存储中,但将这两个存储同步并复制可能会非常棘手。

    链接地址: http://www.djcxy.com/p/15161.html

    上一篇: MongoDB/CouchDB for storing files + replication?

    下一篇: MongoDB/CouchDB: Join a table to itself