Mongodb事务

2021/10/16 2:15:56

本文主要是介绍Mongodb事务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Mongodb的事务通常是指多文档之间,Mongodb从4.0版本开始支持副本集的多行多文档事务,4.2版本开始支持分布式事务,增加了分片集群上多行多文档事务的支持。

Write Concern

 writeConcern决定一个写操作落到多少个节点上才算成功,writeConcern的取值包括:

  • w:0 设置为0 无需关心写入成功与否
  • w :1-任意节点数,最大数为复制集群节点数,默认为1 ,表示写到Primary节点就开始往客户端发送确认写入成功。
  • w:majority 大多数节点成功原则,非具体数据,复制集群中的大多数。
  • w:all 所有节点写入成功才算成功
  • j:true 默认情况为false,写操作达到内存算完成,如果设置为j:true,写操作只有到达journal文件才算成功。
  • wtimeout:写入超时实战

测试示例

writeConcern: {
    w:"majority" // 大多数
    j:true,
    wtimeout: 6000,
}

建议:重要数据设置 w:"majority" 保证数据不丢失,普通数据设置w:1保证最优性能

 Read Preference

readPreference 决定使用哪一个节点来满足 正在发起的读请求。可选值包括:
  • primary: 只选择主节点;
  • primaryPreferred:优先选择主节点,如果不可用则选择从节点
  • secondary:只选择从节点;
  • secondaryPreferred:优先选择从节点, 如果从节点不可用则选择主节点;
  • nearest:选择最近的节点 建议:primary/primaryPreferred:适合于数据实时性要求较高的场景,例如,订单创建完毕直接跳转到订单详情,如果选择从节点读取,可能会造成主节点数据写入之后,从节点还未复制的情况,因为复制过程是一个异步的操作。 secondary/secondaryPreferred:适应用于数据实时性要求不高的场景,例如,报表数据、历史订单。还可以减轻对主节点的压力。


这篇关于Mongodb事务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程