无论我往哪里看,我都看到MongoDB是CP. 但是当我进入挖洞的时候,我发现它最终是一致的. 使用SAFE=TRUE时是否为CP?如果是,这是否意味着当我在SAFE=TRUE的情况下写入时,所有副本都将在获得结果之前更新?

推荐答案

默认情况下,MongoDB具有很强的一致性-如果您先执行写入,然后执行读取,假设写入成功,您将始终能够读取您刚刚读取的写入结果.这是因为MongoDB是单主系统,默认情况下所有读取都会转到主系统.如果您有 Select 地启用从次要数据库读取,那么MongoDB最终会变得一致,因为它可以读取过期的结果.

MongoDB还通过副本集中的自动故障切换获得高可用性:http://www.mongodb.org/display/DOCS/Replica+Sets

Database相关问答推荐

我如何计算mongo中的多个字段?

我们可以出于不同目的在同一 postgres 数据库上同时进行物理和逻辑复制吗?

将数据集上传到 Hub 时停止运行时会导致什么?

如何在 Angular 中使用 IndexedDB?

PostgreSQL 参数化 Order By / Limit in table 函数

将 .frm 和 .opt 文件导入 MySQL

用于存储年份的 MySQL 类型:Smallint 或 Varchar 或 Date?

在 MySQL 中实现一对一关系时确定外键

是否有任何用于 NoSQL 数据库架构迁移的工具?

锁定机制(悲观/乐观)如何与数据库事务隔离级别相关?

JavaScript 布尔搜索查询生成器接口库?

Oracle (ORA-02270) : no matching unique or primary key for this column-list error

数据库中的整数与字符串

使用 PDO 获取单行单列

部分依赖(数据库)

MySQL相对于其他数据库的缺点

PHP 可以与 MS SQL 数据库一起使用吗

SQLite3 数据库的最大连接数是多少?

我应该在哪里存储外键?

如何知道mongodb使用的是哪个存储引擎?