PHP7中的MongoDB\Driver\WriteConcern

这个是个对mongodb的写入性能、以及确保数据一致性的控制设置,非常重要的一个类

1、final public MongoDB\Driver\WriteConcern::__construct ( string|int $w [, integer $wtimeout [, boolean $journal ]] )

参数:$w
1:默认的writeConcern,数据写入到Primary就向客户端发送确认
0:对客户端的写入不需要发送任何确认,适用于性能要求高,但不关注正确性的场景


majority:数据写入到副本集大多数成员后向客户端发送确认,适用于对数据安全性要求比较高的场景,该选项会降低写入性能

$journal:默认为”{j: false},如果要求Primary写入持久化了才向客户端确认,则指定该选项为true

$wtimeout:写入超时时间,仅$w的值大于1时有效
当指定{w: }时,数据需要成功写入number个节点才算成功,如果写入过程中有节点故障,可能导致这个条件一直不能满足,从而一直不能向客户端发送确认结果,针对这种情况,客户端可设置wtimeout选项来指定超时时间,当写入过程持续超过该时间仍未结束,则认为写入失败。

参考资料:https://yq.aliyun.com/articles/54367

2、final public object MongoDB\Driver\WriteConcern::bsonSerialize ( void )

3、final public bool|null MongoDB\Driver\WriteConcern::getJournal ( void )
获取构造函数中的$joural的值,默认为false

4、final public string|int|null MongoDB\Driver\WriteConcern::getW ( void )
获取构造函数中的$w的值,默认为0

5、final public int MongoDB\Driver\WriteConcern::getWtimeout ( void )
获取构造函数中的$timeout中的值

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>