简介
MongoDB是一个开源的,基于分布式的,面向文档存储的菲关系型数据库。可以运行在Windows、Unix、OSX、Solaris体系上,支撑32位和64位应用,供给多种编程说话的驱动法度榜样。MongoDB支撑的数据构造异常松散,是类似JSON的BSON格局,经由过程键值对的情势存储数据,可以存储复杂的数据类型。
根本概念
文档(document):文档是MongoDB的核心概念,是数据的根本单位,类似于关系数据库中的行。在MongoDB中,文档表示为键值对的一个有序集。文档一般应用如下的样式来标记:
- {"title":"hello!"}
- {"title":"hello!","recommend":5}
- {"title":"hello!","recommend":5,"author":{"firstname":"paul","lastname":"frank"}}
大年夜膳绫擎的例子可以看到,文档的值有不合的数据类型,甚至可所以一个完全的内嵌文档(最后一个示例的author就是一个文档)
集合(collection):集合是一组文档的集合,相当于关系型数据库中的数据表,MongoDB数据库不是关系型数据库,没有模式的概念。同一集合中的文档可以有不合的情势。比如:
- {"name":"jack","age":19}
- {"name":"wangjun","age":22,"sex":"1"}
可以存在同一个集合傍边。
数据库(database):多个文档构成集合,多个集合构成数据库。一个MongoDB实例可以承载多个数据库,每个数据库可以拥有0到多个集合。
MongoDB 的重要目标是在键值对存储方法(供给了高机能和高度伸缩性)以及传统的 RDBMS(关系性数据库)体系,集两者的优势于一身。MongoDB实用于以下场景:
- 网站数据:Mongo 异常合适及时的插入,更新与萌芽,并具备网站及时数据存储所需的复制及高度伸缩性。
- 缓存:因为机能很高,Mongo 也合适作为信息基本举措措施的缓存层。在体系重启之后,由 Mongo 搭建的持久化缓存可以避免基层的数据源过载。
- 大年夜尺寸、低价值的数据:应用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多法度榜样员往往会选择传统的文件进行存储。
- 高伸缩性的场景:Mongo异常合适由数十或数百台办事器构成的数据库
- 用于对象及JSON数据的存储:Mongo的BSON数据格局异常合适文档格局化的存储及萌芽。
到此全部MongoDB副本集搞定了两个问题:
- 主节点挂了可否主动切换连接? //咱用副本集
- 主节点的读写压力过大年夜若何解决? //读写分别
当然 MongoDB 也有不合适的场景:
- 高度事务性的体系:例如银行或管帐体系。传统的关系型数据库今朝照样更实用于须要大年夜量事务的应用法度榜样。
- 传统的贸易智能应用:针对特定问题的 BI 数据库可以或许供给高度优化的萌芽方法。对于词攀类应用,数据仓库可能时更合适的选择(如Hadoop套件中的Hive)。
- 须要SQL的问题。
- /data/MongoDBtest/MongoDB-linux-x86_64-2.4.8/bin/mongo
集群攻略
MongoDB在商用情况中,为了高可用性,平日都是以集群情势应用的,MongoDB的集群情况搭建异常简单,下面就作一个介绍。
主大年夜模式
我们在应用MySQL数据库时广泛采取的模式,采取双机备份后主节点挂掉落了后大年夜节点可以接替主机持续办事。所以这种模式比单节点的要靠得住得多。
初始化副本集设备:
下面看一下怎么一步步搭建MongoDB的主大年夜复制节点:
1. 预备两台机械 10.43.159.56 和 10.43.159.58。 10.43.159.56算作主节点, 10.43.159.58作为大年夜节点。
2. 分别下载MongoDB安装法度榜样包。在10.43.159.56上建立文件夹/data/MongoDBtest/master,10.43.159.58建立文件夹/data/MongoDBtest/slave。
推荐阅读
大年夜多半科技界人士都认为,再过十年,无处不在的技巧将会触及一天中的每一个时刻,让我们的生活变得更有效力、更相符小我需求。这同时引出一个有趣的问题:在一个万物互联的世界里,当>>>详细阅读
本文标题:干货满满 | MongoDB集群实战攻略
地址:http://www.17bianji.com/lsqh/40477.html
1/2 1