gpt4 book ai didi

mongodb - MongoDB 中的 readPreference 和 readConcern 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 11:10:16 26 4
gpt4 key购买 nike

我阅读了很多 MongoDB 文档,但我无法理解 readConcern 和 readPreference 选项之间的区别。

例如:如果我在阅读关注选项中设置“多数”并将“主要”设置为我的阅读偏好选项,结果会怎样?这两个选项似乎是矛盾的。

我知道在查询级别我只能设置 readConcern 首选项,但在客户端级别我也可以设置 readPreference 。

最佳答案

在副本集中,主 MongoDB 实例是接收所有写入操作的主实例。

主要读取首选项是默认模式,与 MongoDB 客户端有关;这是一个 驱动程序/客户端选项 .这意味着您从首先写入数据的主实例读取数据(在复制到其他副本集成员之前)。
如果您使用除主要读取首选项之外的其他模式,那么您可能会读取过时的数据。

阅读关注是查询选项 对于副本集。默认情况下,读取关注是本地的。这将返回查询执行时可用的最新数据。数据可能尚未持久化到大多数副本集成员,并且可能会回滚。该选项可以设置为多数,这将使查询读取已持久化到大多数副本集成员的最新数据,并且不会回滚。但是,您必须正确设置它(仅适用于 WiredTiger 引擎和一些其他要求......),并且您可能会错过最近写入但未持久化到大多数副本集成员的数据。

假设您使用默认选项进行阅读偏好和阅读关注。然后,您的 MongoDB 驱动程序会将读取请求路由到主要副本集成员(主实例),该实例将返回当时可用的最新数据。该数据可能尚未保存到大多数副本集成员,并且可能会回滚。

同样,您可以考虑使用读取关注和读取首选项选项的不同组合的用例。

  • 本地/主要首选
  • 本地/次要
  • 本地/次要首选
  • 本地/最近
  • 多数/主要首选
  • 多数/次要
  • 多数/次要首选
  • 多数/最近

  • MongoDB 文档中描述了这些选项。某些组合在某些情况下可能有意义,而其他一些组合在其他情况下可能有意义。为了完整起见,我只是在这里列出了它们。我将其解释如下:
  • 根据读取首选项(驱动程序选项)
  • 路由请求
  • 其次,根据读取关注选项(查询选项)
  • 执行请求

    关于mongodb - MongoDB 中的 readPreference 和 readConcern 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36898463/

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