MongoDB的介绍与搭建

MongoDB介绍

1.关系型与非关系型

NoSQL  not only sql 
NoSQL,指的是非关系型的数据库。
NoSQL有时也称作Not Only SQL的缩写是对不同于传统的关系型数据库的数据库管理系统的统称。 
对NoSQL最普遍的解释是”非关联型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的RDBMS。 
NoSQL用于超大规模数据的存储。
这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
今天我们可以通过第三方平台可以很容易的访问和抓取数据。
用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。
我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了
NoSQL数据库的发展也却能很好的处理这些大的数据。

2. mongo和mysql数据对比

mysql   mongo 
库       库
表       集合
字段  key:value
行       文档 

mysql里的数据:
name        age  job  
oldzhang    28   it 
xiaozhang   28   it
xiaofei     18   student  SZ 

mongo里的数据:
{name:'oldzhang',age:'28',job:'it'},
{name:'xiaozhang',age:'28',job:'it'},
{name:'xiaozhang',age:'28',job:'it',host:'SZ'}

3. MongoDB特点

1)高性能: 
Mongodb提供高性能的数据持久性,尤其是支持嵌入式数据模型减少数据库系统上的I/O操作,索引支持更快的查询,并且可以包括嵌入式文档和数组中的键
2)丰富的语言查询:
Mongodb支持丰富的查询语言来支持读写操作(CRUD)以及数据汇总,文本搜索和地理空间索引 
3)高可用性: 
Mongodb的复制工具,成为副本集,提供自动故障转移和数据冗余
4)水平可扩展性:
Mongodb提供了可扩展性,作为其核心功能的一部分,分片是将数据分在一组计算机上
5)支持多种存储引擎: 
WiredTiger存储引擎、MMAPv1存储引擎、InMemory存储引擎

4. mongo应用场景

1.游戏场景,使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
2.物流场景,用MongoDB存储订单信息,订单状态在运送过程中会不断更新,以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
3.社交场景,用MongoDB存储存储用户信息,用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
4.物联网场景,使用MongoDB存储所有接入的智能设备信息,设备汇报的日志信息,并对这些信息进行多维度的分析
5.视频直播,使用MongoDB存储用户信息、礼物信息等,用户评论
6.场景,使用MongoDB
商城上衣和裤子两种商品,除了有共同属性,如产地、价格、材质、颜色等外,还有各自有不同的属性集,如上衣的独有属性是肩宽、胸围、袖长等,裤子的独有属性是臀围、脚口和裤长等

2.安装部署MongoDB

1.环境准备

db01 10.0.0.51
db02 10.0.0.52
db03 10.0.0.53
版本选择:3.x+
下载软件:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.14.tgz

2.规划目录

#软件所在目录
/opt/mongodb
#单节点目录
/opt/mongo_27017/{conf,log,pid}
#数据目录
/data/mongo_27017

3.下载并解压

#安装依赖
yum install libcurl openssl -y
#wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.14.tgz
tar zxf mongodb-linux-x86_64-rhel70-4.0.14.tgz -C /opt/
cd /opt/
ln -s mongodb-linux-x86_64-rhel70-4.0.14 mongodb

4.创建文件目录以及数据目录

mkdir -p /opt/mongo_27017/{conf,log,pid}
mkdir -p /data/mongo_27017 

5.创建配置文件

cat >/opt/mongo_27017/conf/mongodb.conf<<EOF    
systemLog:
  destination: file   
  logAppend: true  
  path: /opt/mongo_27017/log/mongodb.log

storage:
  journal:
    enabled: true
  dbPath: /data/mongo_27017
  directoryPerDB: true
  wiredTiger:
    engineConfig:
      cacheSizeGB: 0.5
      directoryForIndexes: true
    collectionConfig:
      blockCompressor: zlib
    indexConfig:
      prefixCompression: true

processManagement:
  fork: true
  pidFilePath: /opt/mongo_27017/pid/mongod.pid

net:
  port: 27017
  bindIp: 127.0.0.1,10.0.0.51
EOF

6.配置文件解释

配置文件注解:
systemLog:
  destination: file #Mongodb 日志输出的目的地,指定一个file或者syslog,如果指定file,必须指定
  logAppend: true #当实例重启时,不创建新的日志文件,在老的日志文件末尾继续添加
  path: /opt/mongo_27017/logs/mongodb.log #日志路径

storage:
  journal: #回滚日志
    enabled: true
  dbPath: /data/mongo_27017 #数据存储目录
  directoryPerDB: true #默认,false不适用inmemoryengine
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1 #将用于所有数据缓存的最大小
      directoryForIndexes: true #默认false索引集合storage.dbPath存储在数据单独子目录
    collectionConfig:
      blockCompressor: zlib
    indexConfig:
      prefixCompression: true

processManagement: #使用处理系统守护进程的控制处理
  fork: true #后台运行
  pidFilePath: /opt/mongo_27017/pid/mongod.pid #创建pid文件

net:
  port: 27017 #监听端口
  bindIp: 127.0.0.1,10.0.0.51 #绑定ip

7.启动Mongo

/opt/mongodb/bin/mongod -f /opt/mongo_27017/conf/mongodb.conf

8.检查是否启动

ps -ef|grep mongo
netstat -lntup|grep mongo

9.进入Mongo

/opt/mongodb/bin/mongo

10.配置登录Mongo

写入环境变量

echo 'export PATH=/opt/mongodb/bin:$PATH' >> /etc/profile
source /etc/profile

登录

mongo

关闭

方法1:推荐
mongod -f /opt/mongo_27017/conf/mongodb.conf --shutdown

方法2: 只能是使用localhost方式登陆
mongo
use admin
db.shutdownServer()

方法3: system管理--优化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值