MongoDB的简介及相关设计理论知识 mongodb
MongoDB是一个使用C++编写的、开源的、面向文档的NoSQL(Not Only SQL)数据库,也是当前最热门的NoSql数据库之一。
符合CAP理论的AP的一种实现
CAP——AP BASE 理论(Basically Available,Soft-state,Eventual consistency )
1:基本可用(Basically Available):系统能够基本运行、一直提供服务。
2:软状态(Soft-state):系统不要求一直保持强一致状态。
3:最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求
特点:
高性能、易于使用、易于扩展、功能丰富
面向集合存储,模式自由
支持动态查询,支持javascript表达式查询
支持索引
支持副本集复制和自动故障恢复
自动处理分片
支持二进制和大型对象数据
文件存储格式为BSON(JSON的一种扩展)
MongoDB是NOSQL框架的实现解决方案, 我们了解一下扩展资料信息:
NoSQL的意思是“不仅仅是SQL”,是目前流行的“非关系型数据库”的统称。常见的NoSQL数据库如:Redis、MongoDB
noSQL 就是为了解决在web2.0时代,出现的三高要求:
1:对数据库高并发读写的需求
2:对海量数据的高效率存储和访问的需求
3:对数据库的高可扩展性和高可用性的需求
而RDB(关系型数据库,及我们通常熟悉的mysql,oracle等)里面的一些特性,在web2.0里面变得不那么重要
1:数据库事务一致性
2:数据库的实时读写
3:复杂的SQL查询,特别是多表关联查询
NoSQL的优点
扩展简单方便,尤其是水平横向扩展 (纵向扩展是指用更强的机器;横向扩展是指把数据分散到多个机器)
读写快速高效,多数都会映射到内存操作
成本低廉,用普通机器,
分布式集群即可
数据模型灵活,没有固定的数据模型
CAP定理, 又被称作布鲁尔定理(Eric Brewer) 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
1:强一致性(Consistency):系统在执行过某项操作后仍然处于一致的,在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新的值,这样的系统被认为具有强一致性
2:可用性(Availability):每一个操作总是能够在一定的时间内返回结果
3:分区容错性(Partition tolerance):系统在存在网络分区的情况下仍然可以接受请求并处 理,这里网络分区是指由于某种原因网络被分成若干个孤立区域,而区域之间互不相通
根据CAP原理将数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:
1:CA:单点集群,满足一致性,可用性,通常在可扩展性上不太强大,比如RDB(关系数据库)
2:CP:满足一致性和分区容错性,通常性能不是特别高,如分布式数据库
3:AP:满足可用性和分区容错性,通常可能对一致性要求低一些,如大多数的NoSQL
如有疑问 请留言 欢迎提供建议
评论已有 0 条