MongoDB,另一个角度看数据

传智-玄痛(传智播客北京校区C/C++学院技术指导老师)

MongoDB的起源

几年前 10gen 公司做了 SaaS 方面的研发,因为公司一个 MongoDB 产品存储接口的易用性,用户评价非常好,公司开始全力开发 MongoDB。也因此10gen 公司改名为 MongoDB。

MongoDB的应用 

MongoDB 适用于网站数据、游戏数据、缓存、高伸缩性等场景。目前,百度、阿里、快的打车、京东、赶集网、360、CERN等众多公司纷纷部署MongoDB。

MongoDB的特点

在 Web2.0 时代,传统 RDBMS 在高性能、高可用性、高可拓展性的要求下开始力不从心。

作为NOSQL一种解决方案,由C++语言编写的开源的文档型数据库系统MongoDB堪称NOSQL 运 动 中 的 明 星 成 员。MongoDB 被 db-engines 网站 (http://db-engines.com/en/ranking_trend) 评为 2014 年年度最受欢迎的数据库管理系统。总结一下 MongoDB 的主要特点:面向文档、模式自由、高可用性、水平拓展、支持丰富。

面向文档

文档就是存储在 MongoDB 中的一条记录 , 是一个由键值对组成的数据结构。如 {"company":"itcast","address":"Beijing"}。作为面向文档(Document-Oriented) 的 数 据 库,document 之 于 collection,record 之于 table。

模式自由

文档是 MongoDB 中数据的基本单元,集合则可以被看作是没有模式的表。模式自由(schema-free),每一个 Document都包含了元数据信息,每个文档之间不强迫要求使用相同的格式,同时他们也支持各种索引。由于没有模式需要更改,通常不需要迁移大量数据。比如一个student 文档:{"name":"C++lover","like":  {"Linux 系统编程 "," 分布式系统 ","MongoDB"}}

高可用性

高可用性 (High Availability,HA) 是尽量缩短因维护和崩溃所导致的停机时间,以提高系统和应用的可用性。MongoDB 支持在复制集 (Replica Set) 通过异步复制达到故障转移,自动恢复,集群中主服务器崩溃停止服务和丢失数据,备份服务器通过选举获得大多数投票成为主节点,以此来实现高可用。该模式下为实现读写分离而在备份节点上进行读操作,由于备份服务器实时同步主服务器 Oplog 写操作,虽然适当的一些读也是可分担部分主节点的任务,但是有增加从节点的延时风险。最新的 MongoDB3.0 提供了 MVCC 机制,实现了文档级别的并发控制,进一步提高了并发性能。

水平拓展

MongoDB不推荐使用从节点实现读性能拓展,而是使用分片 Shard。MongoDB 支持分片技术,它能够支持并行处理和水平扩展。通过自动分片技术,Shard 能够在多个片之间分发数据,可以让MongoDB 的部署解决单个服务器的硬件限制而不需要增加应用程序的复杂性,解决包括 RAM 和磁盘I/O 的限制,一个片通常也是一个复制集。

支持丰富

MongoDB除了提供以上丰富的功能支持,另外还提供了丰富的BSON数据类型,官方 MongoDB 的 官 方 driver 支 持 (C/C++、C#、Java、Node.js、Perl、PHP、Python、Ruby、Scala), 另外社区支持了 MongoDB 的 Go,Erlang的驱动。

此外 MongoDB 内置 MapReduce 引擎等聚合框架,空间地理数据的索引,GridFS 等适合多种业务需求。

MongoDB的未来和思考

大数据时代下的开发势必要求程序能够处理海量的数据,MongoDB凭借自身的特点以及与Hadoop 的结合,无疑奠定了其在云计算和大数据中的重要地位,市场前景明朗,需求自然旺盛。在各大招聘网站上,C/C++ 服务器工程师大多都有“熟悉NOSQL(MongoDB、Redis 等)优先”等要求。传智播客以就业为导向,已将 MongoDB 前沿技术融

入到传智播客的 C/C++ 学科就业方向的课程中,以提高整体课程的实用性。

最后我希望用两句话引发大家对 MongDB 的思考 :FREE NOT FREE;做最擅长的事。

文章来源:《传智特刊》-26期

订阅纸质版《传智特刊》方法:

微信搜索:CZTEKAN,关注

回复1即可免费订阅,还包邮哦!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-15 16:48:33

MongoDB,另一个角度看数据的相关文章

从节能角度看数据中心软硬件设计(一)

从节能角度看数据中心软硬件设计(一) -PMC公司资深顾问.前Facebook存储架构设计师. OCP创始人之一Per Brasher于CCCC演讲实录- 此次演讲流程如下.首先讨论关注数据中心效率的原因及其提升效率的原始动力所在.第二步讨论影响效率的主要构成部件,这些部件对效率的贡献大概有多少,以及怎样对每个部件的效率进行优化和提高.第三个方面是展望如何进一步降低TCO成本,其中将涉及更先进的数据保护机制.接着会对存储的各种新模式进行一定展望,最后做一个总结. 下表总结了OCP的设计理念,其中

从另一个角度看癌症,现象、结果并不一定是病因!

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 早上刚醒,不知怎地,有了关于癌症的一些辩证想法, 其实,很多事情不是没有解决办法,而是看问题所站的角度不同, 所以,微信网传的那个外国人弄出的 Y

从另一个角度看大数据量处理利器 布隆过滤器

思路:从简单的排序谈到BitMap算法,再谈到数据去重问题,谈到大数据量处理利器:布隆过滤器. 情景1:对无重复的数据进行排序 @给定数据(2,4,1,12,9,7,6)如何对它排序? 方法1:基本的排序方法包括冒泡,快排等. 方法2:使用BitMap算法 方法1就不介绍了,方法2中所谓的BitMap是一个位数组,跟平时使用的数组的唯一差别在于操作的是位. 首先是开辟2个字节大小的位数组,长度为16(该长度由上述数据中最大的数字12决定的)如图         然后,读取数据,2存放在位数组中下

另一个角度看矩阵分析

现在,我面对的书籍中,到处都充斥着矩阵或是向量,所以矩阵分析定是很重要的吧.抱着这个想法,我选修了“矩阵分析”这门课.然而我总是觉得老师.课本以一种怎么让我难受怎么讲的方式讲授矩阵.但待学完这门课程后,按自己的思路梳理一遍所学知识,又有了一种豁然开朗的感觉.本文将按照我个人的思路,阐明矩阵各个概念出现的联系或是因果关系. 1. 为何要引入矩阵 这个问题很好解释,矩阵使得公式表达更加的方便.就这一便利性而言就值得引入矩阵这一概念,譬如: 在引入基本的矩阵乘法之后,就可以将上述的方程组表达成为,其中

INDEX--从数据存放的角度看索引2

在上次<INDEX--从数据存放的角度看索引>中,我们说到"唯一非聚集索引"和“非唯一非聚集索引”在存储上有一个明显的差别:唯一非聚集索引的非叶子节点上不会包含RID的数据,让我们继续来深挖一下. 准备测试数据: CREATE TABLE TB1 ( C1 INT, C2 INT, C3 INT ) GO CREATE UNIQUE CLUSTERED INDEX IDX_C1 ON TB1(C1) GO CREATE UNIQUE INDEX IDX_C2 ON TB1(

从一个程序员的角度看——微信小应用

前言: 最近初步了解了一下微信小应用,APP端的同事也非常感兴趣,于是在公司内部做了一个小小的分享,分享的过程中有很多讨论内容,大家也是非常感兴趣和有自己的看法,当时"混乱"的场面好几次我都没有把持住.以下内容部分来自于内部分享所用ppt.文章对微信小应用的使用做了展示性介绍,并简单介绍了代码结构.后端交互方法.最后提出一些总结和疑问.文章内容比较主观,有不对的地方欢迎大家指出纠正. 前段时间微信小应用公开内测,在朋友圈火了一把,各种阐述疯狂蔓延,干掉APP之类的说法比较突出,确实达到

从一个程序员的角度看——微信小应用(第二弹 见解)

最近公司的小程序刚通过了代码审核(待发布状态),从最初对它的学习 到开发 到小程序待发布 再到28日微信公开课,也算一步步的了解了微信小程序吧. 28日微信pro公开课张小龙针对小程序进行了一些答疑,之后行业的同僚都很关注,似乎大家还是有很多疑惑.之前初学后写过博客 从一个程序员的角度看--微信小应用(第一弹 初学),今天决定再写一篇小程序的小文,所以此篇谈谈我对小程序的理解吧. 说说张小龙回答的8个问题 1.小程序的入口在哪里?张小龙给出的答案是:小程序在微信没有入口. 2.小程序会不会有类似

从一个程序员的角度看——微信小应用(含直播视频)

前言: 最近初步了解了一下微信小应用,APP端的同事也非常感兴趣,于是在公司内部做了一个小小的分享,分享的过程中有很多讨论内容,大家也是非常感兴趣和有自己的看法,当时"混乱"的场面好几次我都没有把持住.以下内容部分来自于内部分享所用ppt.文章对微信小应用的使用做了展示性介绍,并简单介绍了代码结构.后端交互方法.最后提出一些总结和疑问.文章内容比较主观,有不对的地方欢迎大家指出纠正. 前段时间微信小应用公开内测,在朋友圈火了一把,各种阐述疯狂蔓延,干掉APP之类的说法比较突出,确实达到

另一种角度看《RFID Advanced Security》首部曲

机缘巧合,有幸看到了不少关于RFID的资料,并且有幸看到了<RFID Advanced Security>这份PDF,听说这是国内安全大会上比较早出现关于RFID的议题.又听说这份是乌云内部的高级教程,文章内容单薄是无可厚非,毕竟是演讲,单单时间上来说不可能什么都讲.看完了以后实在有点不(fei)知(yi)所措(si),因为槽点实在是太多了. 文章分成4大块,分别为"RFID Basic Knowledge.RFID Basic System Security.RFID Multip