【MongoDB】MongoDB基本入门02
2017-11-22 23:07
239 查看
MongoDB的固定集合
固定集合简介:固定集合指的是事先创建而且大小固定的集合。
固定集合特性:
固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间
应用场景:
固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制。
创建命令
db.createCollection(“cap1”,{capped:true,size:1000,max:100});
当我们执行下面命令时,发现加入了53条,因为先前添加的会被覆盖掉
for(var i=1;i<=100;i++) { db.cap1.insert({name:'liuyang',age:i}); }
MongoDB的数据库安全
更改MongoDB端口:借助mongod命令,更改服务器端启动端口为2222端口号
mongod –dbpath=D:\mongdbpath –port 2222
连接mongo localhost:2222
安全和认证:
我们要开启服务端的安全检查,但是在开启安全检查之前,需要有一个管理员的账号,admin数据库当中的用户会被视为超级管理员。
第一步:在admin数据库中创建管理员账号;
user admin;
db.addUser(‘root’,’123456’),(超级用户、管理员)
admin数据库中必须有一个管理员、超级用户。
第二步:在itcast数据库中创建普通账号;
user itcast;
db.addUser(‘duxiaowen’,’1234’);//可读可写的用户
db.addUser(‘gaomingzhen’,’1234’,true);//只读用户
第三步:重启数据库服务,并开启安全检查
mongod –dbpath=D:\mongdbpath –port 2222 –auth
第四步:客户端认证连接
use itcast;//使用itcast
再执行
show table命令时,将会要求认证登录。
db.auth(‘duxiaowen’,’1234’); //登录
MongoDB的主从复制 - 读写分离(集群)
因为单台计算机性能不够,对外的并发有限,我们可以利用多台计算机对外提供服务,因为多台计算机对外提供服务的时候我们能够在处理客户端的响应时候,他这样的并发数能达到比较均衡的需求。开启主存储
mongod --dbpath=D:\master --port 10000 --master
开启从存储
mongod --dbpath=D:\slave --port 10001 --slave --source localhost:10000
source指向主存储地址
主从赋值:当主存储服务器瘫痪,从节点服务器可以提供查询,但不能执行写入功能。
MongoDB的副本集 - 自动故障恢复功能(集群)
主从集群和副本集最大的区别就是副本集没有固定的“主节点”;整个集群会选出一个“主节点”,当其挂掉后,由剩下的从节点中选出一个节点成为“主节点”,副本集总有一个活跃点(primary)和一个或多个备份节点(secondary)。只有成为活跃点之后才可以进行增删改查操作。
启动节点一:
mongod --dbpath D:\mongodb\dbs\node1 --logpath D:\mongodb\logs\node1\logs.txt --logappend --port 10001 --replSet itcast/localhost:10002 --master
其中
localhost:10002是因为副本集必须有两个以上节点,这里是说明当前节点与
localhost:10002为一组。
启动节点2:
mongod --dbpath D:\mongodb\dbs\node2 --logpath D:\mongodb\logs\node2\logs.txt --logappend --port 10002 --replSet itcast/localhost:10001
启动节点3:
mongod --dbpath D:\mongodb\dbs\node3 --logpath D:\mongodb\logs\node3\logs.txt --logappend --port 10003 --replSet itcast/localhost:10001,localhost:10002
mongodb的分布式部署
将数据分散到不同的机器上,不需要功能强大的大型计算机就可以存储更多的数据,处理更多的负载。MongoDB分片的基本思想就是将集合切分成小块。这些块分散到若干片里面,每个片只负责总数据的一部分。应用程序不必知道哪片对应哪些数据,甚至不需要知道数据已经被拆分了,所以在分片之前要运行一个路由进程,该进程名为mongos。这个路由器知道所有数据的存放位置,所以应用可以连接它来正常发送请求。对应用来说,它仅知道连接一个普通的mongod。路由器知道数据和片的对应关系,能够转发请求到正确的片上。如果请求有了回应,路由器将其收集起来回送给应用。
创建分布式案例:
1、创建分布式节点:
mongod --dbpath=D:\mongodb\node4444 --port 4444
mongod --dbpath=D:\mongodb\node5555 --port 5555
mongod --dbpath=D:\mongodb\node6666 --port 6666
2、启动config:数据与片之间的关系(路由通过这个来找数据)
mongod --dbpath=D:\mongodb\configdb --port 2222
3、启动路由:客户端访问数据是通过请求路由获取,路由通过上面的config(数据与片的关系)来查找分布式节点数据。
mongos --port 3333 --configdb=localhost:2222;
configdb:配置数据与片之间的关系。
4、客户端登录路由:
mongo localhost:3333/admin
5、客户端通过mongos来添加分片:
db.runCommand({addshard:’localhost:4444’,allowLocal:true});
db.runCommand({addshard:’localhost:5555’,allowLocal:true});
db.runCommand({addshard:’localhost:6666’,allowLocal:true});
allowLocal:表示localhost:4444节点可以自己连接,不用通过路由来间接访问。
6、开启数据库分片功能:这里开启test数据库
db.runCommand({‘enablesharding’:’test’});
7、制定集合中分片的片键:这里制定为test.person中的age键
db.runCommand({‘shardcollection’:’test.person’,’key’:{age:1}})
8、添加数据
use test; //切换数据库
for(var i=1;i<10000000;i++) { db.person.insert({name:'zhouxiaoling',age:i}) }
相关文章推荐
- 数据处理的两个基本问题02 - 零基础入门学习汇编语言39
- Mongodb基本操作入门,增删改查和索引
- Mongodb基本操作入门,增删改查和索引
- MongoDB基础入门002--基本操作,增删改查
- 【MongoDB】MongoDB入门(一)基本操作&常用命令
- MongoDB入门学习(二):MongoDB的基本概念和数据类型
- 【MongoDB】MongoDB基本入门01
- Oracle RAC学习笔记:基本概念及入门 02
- MongoDB入门基本问题
- MongoDB学习笔记02:基本操作
- MongoDb的基本操作快速入门
- MongoDB入门1――简介、安装及基本使用
- mongodb入门-3数据类型--基本数据类型
- mongodb入门-3 数据类型--基本数据类型
- MongoDB PHP基本操作,快速入门
- mongodb入门之mongodb基本语法
- 02 js运行原理 、js开发工具介绍 、js程序入门、 js基本语法
- MongoDB入门学习记录一:基本使用
- MongoDB入门---数据库&&&集合的基本操作
- XML实例入门笔记(02) - 基本结构和语法1