MongoDB作为静态文件提供者?

use*_*558 8 amazon-s3 mongodb gridfs

它是MongoDB的一个很好的候选者,可以将静态文件(文件,视频)作为cdn提供.我搜索一个可靠的方法来存储大量数据(> + To),重新调整S3并管理缓存功能.经验.

谢谢.

And*_*ich 11

我想这个问题的答案是否定的,因为当您使用CDN存储静态文件时,您可以使服务器免受静态数据请求的影响.但是,当你在一个文件系统和MongoDB㈡之间选择假设的MongoDB会更快,东阳如果在服务器上有足够的RAM,蒙戈将所有的数据加载到内存中.

我还找到了一些可以帮助您做出选择的链接:www.markus-gattol.name,groups.google.com

从文档:

何时使用GridFS

很多文件.GridFS倾向于比许多文件系统更好地处理大量(数千)文件.

用户上传的文件.当用户上传文件时,您往往会拥有大量文件,并希望它们被复制和备份.GridFS是存储这些内容的理想场所,因为您可以像管理数据一样管理它们.您还可以直接在文件存储中按用户查询,上传日期等,而无需间接层

经常变化的文件.如果您的某些文件发生了很大变化 - 将它们存储在GridFS中是有意义的,这样您就可以在一个地方修改它们,所有客户端都将获得更新.也可以比存储在源树中更好,因此您不必部署应用程序来更新文件.

何时不使用GridFS

几个小的静态文件.如果你只有一些网站(js,css,images)的小文件,它可能更容易使用文件系统.

请注意,如果你需要原子更新二进制对象,对象是下文件大小限制为您的MongoDB的版本(16MB为1.8),那么你可以考虑手动存储单个文档内的对象.这可以使用BSON bindata类型来完成.有关使用此类型的详细信息,请查看驱动程序的文档.

  • 这几乎是操作系统对磁盘中文件的任何"缓存"所做的事情.您将从apache/lighthttp/random-webserver获得相同的行为. (2认同)