前言
阅读本文的同学们需要一定基础知识,对集群结构,主从结构(master-slave)需要有一定的了解,否则会晕
首先需要了解认识NoSql, 即为Not Only Sql, 不同于传统的关系型数据库的数据库管理系统的统称. MongoDB 是一个基于分布式文件存储的数据库, 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.
MongoDB的数据结构与关系型数据库数据结构对比
关系型数据库术语/ 概念 | MongoDB 术语/ 概念 | 解释/ 说明 |
Database | Database | 数据库 |
Table | Collection | 数据库表/集合 |
Row | Document | 数据记录行/文档 |
Column | Field | 数据列/数据字段 |
Index | Index | 索引 |
Table joins | 表关联/MongoDB 不支持 | |
Primary Key | Object ID | 主键/MongoDB 自动将_id 设置为主键 |
MongoDB 的应用场景和不适用场景
1、适用场景
a.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
b.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。
c.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
d.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。
e.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。
2、不适用场景
a.高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
b.传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
接下来进行实战:mongodb集群搭建
搭建环境准备: vmware workstation + centos7.0, 还不会搭建环境的同学么需要努力,这些都是程序员必备的
知识准备:如下图所示
图中的机器名 端口号等等,也将是我们本文之后要达到的目的