一、MongoDB 简介
1、概念
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
2、特点
-
MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
-
你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序。
-
你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
-
如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
-
Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
-
MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
-
Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
-
Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
-
Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
-
GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
-
MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
-
MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
-
MongoDB安装简单。
二、具体部署
1、创建mongodb源仓库
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Media.repo
CentOS-CR.repo CentOS-Sources.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
CentOS-fasttrack.repo
[root@localhost yum.repos.d]# vim mongodb-org.repo
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
[root@localhost yum.repos.d]# yum list #更新安装列表
2、安装mongodb
[root@localhost yum.repos.d]# yum install -y mongodb-org
3、更改配置文件
vi /etc/mongod.conf
port: 27017 #监听端口
bindIp: 0.0.0.0 #监听地址
systemctl start mongod.service
[root@localhost yum.repos.d]# netstat -natp | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 14849/mongod
/usr/bin/mongo #进入数据库
> show dbs #查看数据文件
admin 0.000GB
config 0.000GB
local 0.000GB
> db.version() #查看版本号
4.0.23
> db.getMongo() #查看当前数据库机器的连接地址
connection to 127.0.0.1:27017
4、关闭防火墙
[root@localhost yum.repos.d]# systemctl stop firewalld
[root@localhost yum.repos.d]# setenforce 0
[root@localhost yum.repos.d]# systemctl disable firewalld.service
5、多实例创建
[root@localhost yum.repos.d]# cd /etc/
[root@localhost etc]# cp -p mongod.conf mongod2.conf
[root@localhost etc]# vim mongod2.conf
systemLog:
destination: file
logAppend: true
path: /data/mongodb/mongod2.log #修改日志存放路径
storage:
dbPath: /data/mongodb/mongo #修改数据存放路径
journal:
enabled: true
net:
port: 27018 #修改端口号
bindIp: 0.0.0.0
[root@localhost etc]# mkdir -p /data/mongodb
[root@localhost etc]# cd /data/mongodb/
[root@localhost mongodb]# mkdir mongo
[root@localhost mongodb]# touch mongod2.log
[root@localhost mongodb]# chmod 777 mongod2.log
[root@localhost mongodb]# mongod -f /etc/mongod2.conf
about to fork child process, waiting until server is ready for connections.
forked process: 15257
child process started successfully, parent exiting
[root@localhost mongodb]# mongo --port 27018 #进入指定的27018端口的mongodb数据库