如何理解mongo中的读取首选项

时间:2014-11-20 15:46:05

标签: mongodb replication database-replication failover

我刚刚开始使用mongoDB。我试图了解如何设置我的辅助数据库服务器,以便在没有主数据库时,可以使用辅助数据库来读取数据。我相信我想要的阅读偏好是首选的。

现在我有点了解我要测试哪些读取首选项,我正在尝试了解如何为preferredPrimary设置我的副本集。 我一直在阅读以下文档:

http://docs.mongodb.org/manual/tutorial/configure-replica-set-tag-sets/

问题:

  1. 这是设置阅读偏好设置的正确文档吗?
  2. 假设它是,我想验证标签名称/值是否是我提出的任何内容?具体来说,示例“dc”中使用的密钥不是mongo中的关键字。那是对的吗?
  3. 一旦我在我的客户端设置这些标签,当我连接到mongo数据库时,是否必须指定任何设置?我正在使用php前端,我发现了这个: http://php.net/manual/en/mongodb.setreadpreference.php
  4. 你能否确认这些标签取代了rs.slaveOK()方法?
  5. 环境:

    • mongoDB版本2.6.5
    • 副本集包含3个成员 - 一个主服务器和两个辅助服务器

1 个答案:

答案 0 :(得分:0)

  1. 是的,但您提供的链接仅适用于readPreference 您还需要提供自定义writeConcern(从问题中的链接中提取):

    db.users.insert({id:" xyz",status:" A"}, {writeConcern:{w:" MultipleDC"

  2. 查看php驱动程序文档如何执行此操作。

    1. 是的,在这种情况下,您可以跳过对slaveOK的调用(特别是95%的情况下,您将从初级读取)