传智-玄痛(传智播客北京校区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) 通过异步复制达到故障转移,自己主动恢复,集群中主server崩溃停止服务和丢失数据。备份server通过选举获得大多数投票成为主节点,以此来实现高可用。

该模式下为实现读写分离而在备份节点上进行读操作。由于备份server实时同步主server Oplog 写操作,尽管适当的一些读也是可分担部分主节点的任务。可是有添加从节点的延时风险。最新的 MongoDB3.0 提供了 MVCC 机制。实现了文档级别的并发控制。进一步提高了并发性能。

水平拓展

MongoDB不推荐使用从节点实现读性能拓展,而是使用分片 Shard。MongoDB 支持分片技术,它可以支持并行处理和水平扩展。通过自己主动分片技术。Shard 可以在多个片之间分发数据,可以让MongoDB 的部署解决单个server的硬件限制而不须要添加应用程序的复杂性。解决包含 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++ serverproject师大多都有“熟悉NOSQL(MongoDB、Redis 等)优先”等要求。传智播客以就业为导向。已将 MongoDB 前沿技术融
入到传智播客的 C/C++ 学科就业方向的课程中,以提高总体课程的有用性。
最后我希望用两句话引发大家对 MongDB 的思考 :FREE NOT FREE。做最擅长的事。

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

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

微信搜索:CZTEKAN。关注

回复1就可以免费订阅。还包邮哦!

MongoDB,还有一个角度看数据相关推荐

  1. 另一个角度看快手,耀眼的不止是1.38万亿市值

    快手IPO大捷! 2月5日,快手正式登陆港交所,上市首日高开193.91%,总市值超1.38万亿港元(约合人民币1.15万亿元),成为"短视频第一股". 01 备受追捧的" ...

  2. 从另一个角度看汉芯事件

    现在汉芯事件造假已成定局,事件真相也快水落石出,就差有关部门的一个最后报告了.现在陈进已是千夫所指,的确陈进后期欺骗国家科研经费性质恶劣,但我认为在陈进创办汉芯前期从另一个角度看是一场赌博而已,纵观近 ...

  3. 另一个角度看券商经纪业务

    转载自https://mp.weixin.qq.com/s/lZpmGMl6lbS1sDq1j5SAUA 原作者:PKUJohnson   量化嘉 作为资本市场的核心机构,券商有着举足轻重的作用.投行 ...

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

    思路:从简单的排序谈到BitMap算法,再谈到数据去重问题,谈到大数据量处理利器:布隆过滤器. 情景1:对无重复的数据进行排序 @给定数据(2,4,1,12,9,7,6)如何对它排序? 方法1:基本的 ...

  5. oracle error-1555,从另外一个角度看ORA-1555

    十多年前,ORA-1555是一个十分经典的面试问题,超过60%的面试官都会像求职者提出这个问题.在10年前老白的<Oracle DBA 优化日记>中,也深入的讨论了这个问题.传统的对ORA ...

  6. 资深测开大佬亲述:从另一个角度看软件测试

    本文将从岗位要求看软件测试.软件测试技术的认识和理解.质量保障与软件测试的关系.构建质量保障系统的要点这四个方面简单聊一聊作者的理解,带你换个角度来认识软件测试. 01.从岗位要求看软件测试 首先,我 ...

  7. 从另一个角度看拉普拉斯变换

    一.奥列弗. 赫维赛德是何许人也 二.傅里叶变换(轻量版拉普拉斯变换) 三.拉普拉斯变换(原来就是那么回事) 拉普拉斯变换可以说是现代工程学使用最广泛的数学工具,它通过数学变换将微积分方程转化成代数方 ...

  8. 老司机带你用python从另外一个角度看市场需求~

    从这个标题来看就很有格局有没有? 今天教的是采集按摩店的数据, 不爬不知道呀, 光是一个城市的前10页数据, 都有1000多家店了, 全部爬完,那不得至少3000家以上? 现在的市场需求都那么大的吗? ...

  9. 另一个角度看世界:苹果眼镜,下一个重磅产品

    全文共1830字,预计学习时长5分钟 图源:unsplash 增强现实和虚拟现实行业在过去几年已经渐趋成熟.苹果公司正准备发布其首款增强现实技术的智能眼镜,配备着苹果神秘的增强现实镜头的苹果眼镜即将亮 ...

最新文章

  1. php mysql 遍历 嵌套_PHP / mySQL – 如何将嵌套行提取到multidimensinal数组中
  2. 神经网络训练集最少可以是多少个?
  3. 关于多目标任务有趣的融合方式
  4. c++11特性move和forward区别
  5. 和大家探讨一下“虚拟光驱”原理
  6. C++写的一个聊天室代码,用于XEIM开源即时通讯软件上的
  7. xForm应用开发手册
  8. 1018. 锤子剪刀布 (20)
  9. Unity2018引用System.Windows.Forms.dll发布报错
  10. 《软件质量保证与测试》学习笔记【第一章 软件测试基本概念】
  11. matlab模拟晶粒生长,一个有monte caro 模拟晶粒生长的Matlab源程序
  12. Ghost Win10 企业版LTSC 2020.05(32位+64位)
  13. Visual Studio 拆分C#代码到多个cs文件
  14. Macbook mac 系统安装 Anaconda的方法
  15. python垃圾分类程序_如何利用Python进行垃圾分类
  16. 湖南师范大学2018年大学生程序设计竞赛新生赛 F-小名的回答
  17. 红警战网服务器端源码,红色警戒2战网平台完整版
  18. 安全 | 开源入侵防御系统 Snort
  19. cpufreq 代码分析
  20. 到今天了你还不会集合的Stream操作吗?你要out了

热门文章

  1. sharepoint_wf 启动窗口设计,支配给自由域用户
  2. 软件测试用例质量不高?我教你如何编写高质量的测试用例!
  3. python基础之类的属性方法、魔术方法普通方法
  4. 圆盘(抽奖)自定义View
  5. 后端比android简单,android开发怎么少的了后端(下)
  6. 3d 自动生成物体_根据 2D 图片自动生成 3D 图书封面的牛逼工具
  7. java 获得 加载类_java 类的加载,与获得相应的方法
  8. docker运行yyets_使用Docker镜像
  9. 幅度和幅值有区别吗_16G内存够用吗?8G/16G/32G内存横向对比
  10. 测控技术与仪器专业c语言教学视频,测控技术与仪器要学哪些基础和专业课程...