我正在开发一个小型快递应用程序,该应用程序当前允许用户登录(通过护照)并查看有关其朋友的信息,例如购买历史记录,喜欢等。理想情况下,我希望每个用户都有随附的个人资料照片以及他们所购买商品的信息历史记录以及随附的产品照片。简化的用户模型如下所示
{
"name": "Homer Simpson",
"purchases": "Duff"
}
如果我想要与此相关的个人资料照片,是否有一种直接的方法可以在沙发床中进行处理,还是应该将其存储在S3之类的文件中,然后使用
{
"name": "Homer Simpson",
"profile_pic" : "http://s3.something.com/profilepics/homer.jpg",
"purchases": "Duff"
}
我可以为您提供两个参数,说明为什么我不将它们存储在数据库中(Couchbase或其他方式)。
1)充分利用每种工具。Couchbase可以提供您从其在RAM中的托管缓存中直接提供的示例文档。您将获得不到毫秒的响应时间。S3在提供静态内容(例如图像)方面非常出色。Couchbase是否也可以从RAM很快地提供该图像?是的,但是您将使用更多的资源来执行此操作,这使我进入了我的第二个论点。
2)通过将映像存储在DB,Couchbase或其他方式中,您将使用最昂贵,性能最高的资源来处理静态且不经常更改的内容。只需考虑与S3相比EC2实例上的存储成本。如果要将其存储在数据库中,则必须与关键数据一起存储,复制,备份等。S3以极高的价格具有很高的耐用性。数据库中的图像听起来像是一个好主意,但是随着时间的流逝,它们变成了束缚您的脖子。除非您现在就从用户帐户过期策略开始,否则您可能需要2年的时间,才能存储,备份和复制来自1.5年前退出使用服务的用户的图像,并需要为每KB支付多次费用。同样,这绝不是Couchbase专有的。
我认为,在S3中使用具有指向图像指针的文档。您将获得两全其美。无需太多额外工作的性能和成本效益。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句