MongoDB,另一个角度看数据

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

MongoDB的起源

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

MongoDB的应用 

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

模式自由

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

高可用性

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

水平拓展

MongoDB不推荐使用从节点实现读性能拓展,而是使用分片 ShardMongoDB 支持分片技术,它能够支持并行处理和水平扩展。通过自动分片技术,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即可免费订阅,还包邮哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值