MongoDB介绍
1.1 什么是MongoDB
MongoDB 是开源的文档数据库,提供了高性能、高可用性、高扩展性。
1.1.1 文档数据库
在MongoDB中一条记录称之为文档,也可以理解成关系数据库中的行。文档由键值对组成,类似于JSON对象。值又可以由文档、数组或者文档数组组成。
使用文档存储数据有如下优势
文档(对象)是许多编程语言的原生数据类型。
嵌入文档或数组减少了昂贵的join操作
无固定的schema
1.1.2 关键特性
高性能
支持嵌入的数据模型,减少数据库系统的活动IO
支持索引使得查询更快,并且嵌入的文档或数组也可以定义索引。
高可用性
自动故障转移
数据冗余存储
高扩展性
数据自动分片,在集群中的所有机器上交叉存储数据。
副本集可以提供低延迟高吞吐量的,最终一致性的读取部署。
2. MongoDB的安装
2.1 支持的平台
2.2 在Linux上安装MongoDB
MongoDB的安装方式分两种:rpm安装,Tarball安装
官方推荐使用RPM的方式安装MongoDB,因为RPM已针对特定的操作系统做了优化,并且加入了TLS/SSL支持。
2.2.1 使用rpm安装MongoDB(RedHat操作系统)
RPM包有如下几个
mongodb-org包中包含了各种初始化脚本
/etc/rc.d/init.d/mongod 用来启动、关闭、重启MongoDB的后台进程
/etc/mongod.conf MongoDB启动时的配置文件
下载MongoDB的RPM包
https://repo.mongodb.org/yum/redhat/6Server/mongodb-org/
选择相应的版本
https://repo.mongodb.org/yum/redhat/6Server/mongodb-org/3.2/x86_64/RPMS/
下载
mongodb-org-3.2.0-1.el6.x86_64.rpm
mongodb-org-mongos-3.2.0-1.el6.x86_64.rpm
mongodb-org-server-3.2.0-1.el6.x86_64.rpm
mongodb-org-shell-3.2.0-1.el6.x86_64.rpm
mongodb-org-tools-3.2.0-1.el6.x86_64.rpm
上传至服务器,安装rpm包
[root@localhost ~]# rpm -ivh mongodb-org-server-3.2.0-1.el6.x86_64.rpm
warning: mongodb-org-server-3.2.0-1.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY
Preparing... ########################################### [100%]
1:mongodb-org-server ########################################### [100%]
[root@localhost ~]# rpm -ivh mongodb-org-shell-3.2.0-1.el6.x86_64.rpm
warning: mongodb-org-shell-3.2.0-1.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY
Preparing... ########################################### [100%]
1:mongodb-org-shell ########################################### [100%]
[root@localhost ~]# rpm -ivh mongodb-org-mongos-3.2.0-1.el6.x86_64.rpm
warning: mongodb-org-mongos-3.2.0-1.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY
Preparing... ########################################### [100%]
1:mongodb-org-mongos ########################################### [100%]
[root@localhost ~]# rpm -ivh mongodb-org-tools-3.2.0-1.el6.x86_64.rpm
warning: mongodb-org-tools-3.2.0-1.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY
Preparing... ########################################### [100%]
1:mongodb-org-tools ########################################### [100%]
[root@localhost ~]# rpm -ivh mongodb-org-3.2.0-1.el6.x86_64.rpm
warning: mongodb-org-3.2.0-1.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY
Preparing... ########################################### [100%]
1:mongodb-org ########################################### [100%]
启动MongoDB
[root@localhost ~]# service mongod start
Starting mongod: [ OK ]
验证是否启动成功
[root@localhost ~]# tail -n 1 /var/log/mongodb/mongod.log
2016-01-04T16:19:41.497+0800 I NETWORK [initandlisten] waiting for connections on port 27017
2.2.2 使用Tarball安装MongoDB
下载二进制包 https://www.mongodb.org/downloads.
在服务器上解压安装包
tar -zxvf mongodb-linux-x86_64-3.2.0.tgz
将安装文件移动到指定的位置
mkdir -p mongodb
cp -R -n mongodb-linux-x86_64-3.2.0/ mongodb
声明环境变量
export PATH=<mongodb-install-directory>/bin:$PATH
运行MongoDB
建立数据存放目录
mkdir -p /data/db
启动MongoDB
mongod --dbpath /data/db