关于 Mongo 是 NoSql 数据库的事实,并考虑到 NoSql Dbs 对 RAM 的严重依赖,我一直想知道在以下情况下会发生什么?
假设我在服务器中安装了 MongoDb,并且我正在文档中记录付款。例如:
{
UserId: "X-123456",
//Rest of user data,
Payments: [
{
TransactionId: "X-123456"
//Rest of payment data
}
]
}
当用户付款时,服务器收到付款成功响应,在响应添加到文档后大约几秒钟内,电源熄灭,服务器关闭。例如:
1- Response received at 04.01.01.100
2- Response added to Mongo Document at 04.01.01.300
3- Power goes out at 04.01.05.00
在这种情况下,数据会发生什么变化?它还会出现在User
文档中吗?
1- 在 04.01.01.100 收到响应
2-在 04.01.01.300添加到 Mongo 文档的响应
3- 在 04.01.05.00 断电
在这种情况下,数据会发生什么变化?它在用户文档中仍然可用吗?
当您使用适当的WriteConcern 时, mongodb 会确认数据已存储在文档中。在您的情况下,数据仍将在用户文档中可用。
w: 1
在WriteConcern上使用此选项请求确认写入操作已传播到独立的 mongodb 或副本集中的主数据库。w: 1
是 MongoDB 的默认写关注。
MongoDB 站在CAP(一致性可用性分区)定理上的CP,通过一致性 MongoDB 确保我们保存的数据在我们请求/查询时返回给我们。更多信息 - Mongodb ACID 和 CAP 定理
MongoDB 是一个 NoSQL 数据库,并且具有在给定秒内写入更多文档的良好能力 -插入统计示例
请注意,MongoDB 中文档的写入时间取决于
文件大小(每个文件最大 16MB),
我们已经指定了WriteConcern,
集合上需要在插入文档时更新的索引数和
副本集的数量(MongoDB中的副本集是一组维护相同数据集的mongod进程。副本集提供冗余和高可用性)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句