mongodb简介

MongoDB 是一个使用C++编写的,开源的,面向文档的NoSQL(Not Only SQL)数据库。
NoSQL的意思是“不仅仅是SQL”,是目前流行的“非关系型数据库”的统称。
常见的NoSQL数据库如:Redis、CouchDB、MongoDB、HBase、Cassandra等。

MongoDB特点

  • 高性能、易于使用、易于扩展、功能丰富
  • 面向集合存储,模式自由
  • 支持动态查询,支持javascript表达式查询
  • 支持索引
  • 支持副本集复制和自动故障恢复
  • 自动处理分片
  • 支持二进制和大型对象数据
  • 文件存储格式为BSON(JSON的一种扩展)

NoSQL

NoSQL解决了哪些问题
  • 1,对数据库高并发读写的需求。
  • 2,对海亮数据的高效率和访问的需求。
  • 3,对数据库的高可扩展性和高可用性的需求。
NoSQL的优点
  • 扩展简单方便,尤其是水平横向扩展(纵向扩展是指用更强的机器;横向扩展是指把数据分散到多个机器)。
  • 读写快速高效,多数都会映射到内存操作 。
  • 成本低廉,用普通机器,分布式集群即可 。
  • 数据模型灵活,没有固定的数据模型。

CAP 原则

CAP原则又称CAP定理,指的是在一个分布式系统中, 
Consistency(一致性)、 Availability(可用性)、
Partition tolerance(分区容错性),三者不可得兼
  • 1: 强一致性(Consistency):系统在执行过某项操作后仍然处于一致的,在分布式系统中,更 新操作执行成功后所有的用户都应该读取到最新的值,这样的系统被认为具有强一致性。
  • 2: 可用性(Availability): 每一个操作总是能够在一定的时间内返回结果。
  • 3: 分区容错性(Partition tolerance): 系统在存在网络分区的情况下仍然可以接受
    请求并处理,这里网络分区是指由于某种原因网络被分成若干个孤立区域,而区域之间互不相通
根据CAP 原理将数据库分成了满足CA原则,满足CP原则和满足AP原则三大类
  • CA: 单点集群,满足一致性,可用性,通常在可扩展上不太强大,比如关系型数据库。
  • CP: 满足一致性和分区容错性,通常性能不是特别高,如分布式数据库。
  • AP: 满足可用性和分区容错性,通常可能对一致性要求低一些,如大多数的NoSQL。

NoSQLBooster 连接MongoDB mongodb和nosql的区别_强一致性

与BASE的关系

BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
BASE(Basically Available,Soft-state,Eventual consistency )
  • 1: 基本可用(Basically Available): 系统能够基本运行,一直提供服务。
  • 2: 软状态(Soft-state): 系统不要求一直保持强一致状态。
  • 3: 最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求。

MongoDB安装

1,下载https://www.mongodb.com/download-center#community

2,然后tar zvxf 解压。

3,拷贝到相应的文件夹即可。

启动

1,新建一个文件 指定数据库 日志 存储位置
mdb.conf

dbpath=../dbs
logpath=../logs/log
fork=true
nojournal = true
./mongod -f mdb.conf

可选参数:

  • port 指定服务端口号,默认端口27017。
  • bind_ip 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP。
  • logpath 指定MongoDB日志文件,注意是指定文件不是目录。
  • fork 以守护进程的方式运行MongoDB,创建服务器进程。
  • auth 启用验证。
  • dbpath 指定数据库路径。
  • journal 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里。
  • maxConns 最大同时连接数 默认2000 。

./mongod -help 查看更多配置。

关闭

1:如果是在Shell里面启动的,ctrl+c退出shell就关闭了。

2:如果是在后台启动的,运行 pkill mongod。

3:也可以进入javascript shell,切换到admin数据库,运行db.shutdownServer()。