gpt4 book ai didi

mongodb - 对于广泛的读写操作 MongoDB vs Cassandra

转载 作者:IT王子 更新时间:2023-10-29 06:09:46 25 4
gpt4 key购买 nike

我使用过 MongoDB,但对 Cassandra 还很陌生。我曾研究过使用 MongoDB 的应用程序,这些应用程序不是非常大的应用程序。读取和写入操作不是很密集。在那种情况下,MongoDB 对我来说效果很好。现在我正在构建一个新的应用程序(具有一些功能,如 Stack Overflow [投票、总 View 、建议、评论等]),其中包含对同一项目的大量并发写入操作(将来!)。所以根据网上的资料,MongoDB不是最好的选择(但Cassandra是)。但是问题我是finding在 Cassandra 中选择正确的数据模型。

Construct Models around your queries. Not around relations and objects.

我也看了用Mongo+Redis的方案。先更新Mongo数据库再更新效率高吗updating Redis DB 用于同一数据项的所有多个写入请求?

我想验证解决此问题的最佳方案是 Mongo + redis 还是 Cassandra?

如有任何帮助,我们将不胜感激。

最佳答案

选择数据库是非常主观的。我会说使用新的 WiredTiger 存储引擎的现代 MongoDB 3.2+ 可以很好地处理并发。

在选择分布式 NoSQL(或 SQL)数据存储时,您通常只能选择这三个中的两个:

这叫做 CAP Theorem .

MongoDB 有 C 和 P,Cassandra 有 A 和 P。Cassandra 也是一个面向列的数据库,并且会采用与 MongoDB 不同的方法来存储和检索数据(这是一个文档-面向数据库)。现实情况是,任何一个数据库都应该能够轻松扩展以满足您的需求。我会担心数据存储和检索语义与您应用程序的数据模型的匹配程度,以及提供的功能的有用程度。

决定哪个数据库最适合您的应用程序是非常主观的,并且与 Stack Overflow 上的“基于意见的问题”接壤。

使用 Redis 作为 LRU 缓存绝对是有效扩展策略的一个组成部分。典型的模型是,在读取可缓存的数据时,首先检查数据是否存在于缓存(Redis)中,如果不存在,则从数据库中查询,将结果存储到缓存中,并返回。虽然在某些情况下可能是合适的,但将 所有内容 都写入 Redis 和数据库并不常见。您需要弄清楚什么是可缓存的以及每个缓存的项目应该存在多长时间,然后像我上面解释的那样在读取时缓存它,或者在写入时缓存它。

关于mongodb - 对于广泛的读写操作 MongoDB vs Cassandra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38427165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com