首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB PHP ReplicaSet正确语法

MongoDB PHP ReplicaSet正确语法
EN

Stack Overflow用户
提问于 2011-09-21 02:13:56
回答 1查看 443关注 0票数 0

我正在寻找使用replicaSet的正确语法。我在PHP页面http://php.net/manual/en/mongo.construct.php上看到了文档,但是我不太确定接下来会发生什么。

代码语言:javascript
复制
<?php

// pass a comma-separated list of server names to the constructor
$m1 = new Mongo("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));

// you only need to pass a single seed, the driver will derive the full list and
// find the master from this seed
$m2 = new Mongo("mongodb://ny1.example.com", array("replicaSet" => "myReplSet"));

?>

在此之后,我应该这样写吗?

代码语言:javascript
复制
if( $m1 ){ $mongo = $m1; }else{ $mongo = $m2; }

这是我在codeigniter中使用的现有类的全部内容。需要切换它以支持副本集。

代码语言:javascript
复制
<?php  defined('BASEPATH') OR exit('No direct script access allowed');

class CI_Mongo extends Mongo
{
    var $db;

    function CI_Mongo()
    {   
        // Fetch CodeIgniter instance
        $ci = get_instance();
        // Load Mongo configuration file
        $ci->load->config('mongo');

        // Fetch Mongo server and database configuration
        $server = config_item('mongo_server');
        $dbname = config_item('mongo_dbname');

        // Initialise Mongo
        if ($server)
        {
            parent::__construct($server);
        }
        else
        {
            parent::__construct();
        }
        $this->db = $this->$dbname;
    }
} 
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-21 03:26:27

不,您没有理解文档中的示例。它们是配置replicaSet的两种不同方法,您只需使用其中一种。

在第一个示例中,您指定了多个服务器,Mongo将在他设法加入的第一个服务器上检测replicaSet。

第二个示例看起来更简单,因为它在单个服务器上检测到它。它工作得很好,直到您在这里指定的单个服务器出现故障。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7489769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档