-1

我正在开发一个使用大量图像的网站。图像经常被操纵(每隔几秒钟,由客户)。所有图像都在 linux 服务器上。也有可能两个客户端同时尝试更改图像。所以我的问题是:我应该将图像放入数据库还是将它们留在文件夹中(操作系统如何处理写-写-冲突?)?

我在服务器上使用 node.js 和 mongoDB。

4

2 回答 2

2

您通常会将对文件位置的引用存储在数据库中。至于写-写冲突在大多数首先打开文件的人中,它主要取决于您正在使用的操作系统。您将需要研究文件锁定。这篇维基百科文章提供了一个很好的概述。

http://en.wikipedia.org/wiki/File_locking

如果可能发生写入冲突,在您的代码中检查文件是否正在使用并通知用户也是一种很好的做法。

于 2013-02-26T16:04:14.840 回答
1

我建议您使用 GridFS 文件系统将图像存储在 MongoDB 中。如果您为数据库使用副本集,这允许您将图像及其元数据保存在一起,它具有原子更新和另外两个优点:

  • 您的图像与其他数据具有相同的高可用性,并且可以一起备份

  • 最终,您可以将查询定向到集合的次要成员

有关详细信息,请参阅

http://docs.mongodb.org/manual/applications/gridfs

http://docs.mongodb.org/manual/replication/

这有帮助吗?

干杯

罗纳德

于 2013-03-24T18:54:50.540 回答