MongoDB快速使用手册

MongoDB配置及使用

 

 

  1. MongoDB软件下载

下载网址:https://www.mongodb.com/download-center#community

Windows系统下载

Linux系统下载

 

  1. Windows环境下安装

双击这个软件,

点击Next

 

选择I accept     Next

选择Custom进行个人配置

选择Next

选择Next

Next

不用操作等着安装完成

安装完成后桌面出现这个图标

  1. MongoDB启动配置

首先找到MongoDB安装路径,找到bin目录下找到文件,双击运行文件,一般都会出现闪退现象。

出现闪退问题解决:

首先在D:\mongodb创建一个mongod.cfg文件内容为:

systemLog:

destination: file

path: d:\data\log\mongod.log

storage:

dbPath: d:\data\db

在MongoDB所在盘下的根目录创建一个data文件夹,并在data文件夹里创建一个db文件夹(例如,我的MongoDB在C盘的一个文件里,就在C盘根目录下创建data)

然后打开cmd,进入到MongoDB的bin目录下,输入mongod --dbpath c:/data

会出现图一所示情况,即修复成功,按上述步骤继续运行即可。

然后双击

出现这样的情况说明正常启动双击进行测试

测试2+2出现4说明安装启动成功

查看数据库中有几个表

双击

点击CONNECT

这个界面相当于MongoDB的图形化界面可以对数据库进行操作。

  1. Linux系统安装

 

 

  1. Java语言实现对MongoDB增删改查

数据库连接:

添加信息:

修改信息:

删除信息:

查询信息:

  1. MongoDB建立唯一索引

建立唯一索引的作用:如果建立唯一索引的时候,有数据重复,则会报错。

建立唯一索引的方式:db.集合名称.ensureIndex({"msg.MsgId":1},{unique:true});

  1. MongoDB主存分离

作用:避免数据库单点部署,以防止数据遭到毁灭性破坏

一:主从复制

1: 首先看看模型图

3:下面我们就一一实践

第一步:我们把mongodb文件夹放在D盘和E盘,模拟放在多服务器上。

第二步:启动D盘上的mongodb,把该数据库指定为主数据库,其实命令很简单:>mongodb --dbpath='XXX' --master,

           端口还是默认的27017

第三步:同样的方式启动E盘上的mongodb,指定该数据库为从属数据库,命令也很简单,当然我们要换一个端口,比如:8888。

           source 表示主数据库的地址。

           >mongod --dbpath=xxxx --port=8888 --slave --source=127.0.0.1:27017

第四步:从图中的红色区域我们发现了一条:“applied 1 operations"这样的语句,并且发生的时间相隔10s,也就说明从属数据库每10s

           就向主数据库同步数据,同步依据也就是寻找主数据库的”OpLog“日志,可以在图中红色区域内发现”sync_pullOpLog“字样。

           接下来我们要做的就是测试,惊讶的发现数据已经同步更新

4:  如果我还想增加一台从属数据库,但是我不想在启动时就指定,而是后期指定,那么mongodb可否做的到呢?答案肯定是可以的。

      我们的主或者从属数据库中都有一个叫做local的集合,主要是用于存放内部复制信息。

看上面的log,提示没有主数据库,没关系,某一天我们良心发现,给他后期补贴一下,哈哈,再开一个cmd窗口,语句也就是

    在sources中add一个host地址,最后发现数据也同步到127.0.0.1:5555这台从属数据库中....

5: 读写分离

     这种手段在大一点的架构中都有实现,在mongodb中其实很简单,在默认的情况下,从属数据库不支持数据的读取,但是没关系,

在驱动中给我们提供了一个叫做“slaveOkay"来让我们可以显示的读取从属数据库来减轻主数据库的性能压力

  1. MongoDB分片技术

一:分片

mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一种解决方案。

 

下面我对这张图解释一下:

  人脸:代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。

mongos:首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合....好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据和片的对应关系以及相应的配置信息保存在"config服务器"上。

mongod:一个普通的数据库实例,如果不分片的话,我们会直接连上mongod。

二: 实战

  首先我们准备4个mongodb程序,我这里是均摊在C,D,E,F盘上,当然你也可以做多个文件夹的形式。

1:开启config服务器

  先前也说了,mongos要把mongod之间的配置放到config服务器里面,理所当然首先开启它,我这里就建立2222端口。

2: 开启mongos服务器

  这里要注意的是我们开启的是mongos,不是mongod,同时指定下config服务器,这里我就开启D盘上的mongodb,端口3333。

3:启动mongod服务器

  对分片来说,也就是要添加片了,这里开启E,F盘的mongodb,端口为:4444,5555。

4: 服务配置

  哈哈,是不是很兴奋,还差最后一点配置我们就可以大功告成。

   <1> 先前图中也可以看到,我们client直接跟mongos打交道,也就说明我们要连接mongos服务器,然后将4444,5555的mongod交给mongos,添加分片也就是addshard()。

这里要注意的是,在addshard中,我们也可以添加副本集,这样能达到更高的稳定性。

<2>片已经集群了,但是mongos不知道该如何切分数据,也就是我们先前所说的片键,在mongodb中设置片键要做两步

①:开启数据库分片功能,命令很简单 enablesharding(),这里我就开启test数据库。

②:指定集合中分片的片键,这里我就指定为person.name字段。

5: 查看效果

  好了,至此我们的分片操作全部结束,接下来我们通过mongos向mongodb插入10w记录,然后通过printShardingStatus命令查看mongodb的数据分片情况。

这里主要看三点信息:

  ① shards:我们清楚的看到已经别分为两个片了,shard0000和shard0001。

  ② databases:这里有个partitioned字段表示是否分区,这里清楚的看到test已经分区。

  ③ chunks:这个很有意思,我们发现集合被砍成四段:无穷小 —— jack0,jack0 ——jack234813,jack234813——jack9999,jack9999——无穷大。分区情况为:3:1,从后面的 on shardXXXX也能看得出。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值