內容目录

上一个主题

Redis

下一个主题

Elasticsearch

MongoDB

MongoDB 是一款高性能、开源的 NoSQL 文档数据库。

在新浪云上,你可以很方便的创建和管理 MongoDB 集群。目前 MongoDB 集群采用三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。其中 Primary 和 Secondary 节点提供服务,当 Primay 节点出现故障,系统自动选举新的 Primary 节点。 同时我们还提供了在线扩容、自动备份、监控等功能来帮助你更好地管理集群。

创建

进入云应用控制台的任一应用管理页面,点击左侧栏的『数据库与缓存/MongoDB』,进入 MongoDB 的管理页面,点击上方的『创建 MongoDB』,如下图所示:

../../_images/mongodb-create.png

创建实例需要设置以下参数:

  • 名称:最大长度不超过 32 个字符,限英文、数字、下划线,横线。
  • 配置:目前提供 4 种配置的 MongoDB 实例。

创建成功后,点击实例管理,即可进入信息页面,在信息页面中,可以查看连接实例需要的URI,以及用户名密码等信息。

../../_images/mongodb-info.png

数据导入

如果你想将自己现有 MongoDB 实例里的数据导入到新浪云线上的 MongoDB 实例里,可以按以下步骤操作:

使用 mongodump 导出数据:

$ mongodump --host=MongoDB 地址 --username= 用户名 --password= 密码

导出成功后,会在当前目录生成一个 dump 目录,所有的数据都会被导出到 dump 目录中。

通过 VPN 隧道 连接到新浪云的云端网络。执行以下命令将数据导入到线上 MongoDB 实例里。

$ mongorestore --host=MongoDB 地址 --username= 用户名 --password= 密码 --dir=dump

注解

mongodumpmongorestore 是 MongoDB 的命令行导入 / 导出工具。

管理

你可以通过 VPN 隧道 连接到新浪云的云端网络。然后使用 MongoDB Admin UIs 这里列出的任意管理工具来管理 MongoDB。

也可以通过新浪云提供的 Web 客户端进行管理,在对应实例后面的操作栏中选择『管理』即可。

删除

进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『删除』即可。

扩容

你可以在线扩大或者缩小 MongoDB 实例的内存容量,进入 MongoDB 的管理页面,在对应实例后面的操作栏中选择『修改』即可,扩容期间 MongoDB 会重启,可能会造成短时间的服务不可用。

高可用

MongoDB 复制集(Replica Set) 通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用。但需要注意的是,连接副本集需要使用特殊的连接字符串,否则服务高可用将不复存在。

因此,连接时需要使用形如 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 的连接字符串,该字符串可以在服务详情页查询到。

使用示例

警告

由于 PHP 5.3 版本较老,暂时不支持 MongoDB,如果需要使用 MongoDB,请将应用切换到 PHP 5.6 版本。

PHP 5.6 运行环境默认安装了 PHP MongoDB 可以通过该扩展来访问 MongoDB 。 PHP MongoDB 是 MongoDB 的底层驱动库,实际使用中,建议结合 mongo-php-library 进行操作。

使用 composer 安装 mongodb/mongodb 库。如果当前系统中没有 composer,可以参考 使用 Composer 管理依赖库 安装。

$ composer require "mongodb/mongodb=^1.0.0"

composer 执行完后会在应用目录下生成一个 vendor 目录,将 vendor 目录添加入代码仓库中。然后你就可以通过以下方式在应用中连接 MongoDB 了。

<?php

require 'vendor/autoload.php'; // include Composer goodies

$client = new MongoDB\Client(MONGODB_URI);

更多的操作,可以参考 官方文档