当前位置:网站首页>MongoDB 什么兴起的?应用场景有哪些?
MongoDB 什么兴起的?应用场景有哪些?
2022-06-11 19:03:00 【Blue92120】
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 等)优先”等要求。
边栏推荐
猜你喜欢

《经济学人》:WTO MC12重启 数字经济成为全球经济复苏和增长的核心引擎
![cf:A. Print a Pedestal (Codeforces logo?) [simple traversal simulation]](/img/5e/0acd39d572954e5ecb936f49511d94.png)
cf:A. Print a Pedestal (Codeforces logo?) [simple traversal simulation]

Niu Ke swipes the question -- converting a string to an integer
![leetcode:剑指 Offer 59 - II. 队列的最大值[deque + sortedlist]](/img/6b/f2e04cd1f3aaa9fe057c292301894a.png)
leetcode:剑指 Offer 59 - II. 队列的最大值[deque + sortedlist]
![Leetcode: sword finger offer 59 - ii Maximum value of queue [deque + sortedlist]](/img/6b/f2e04cd1f3aaa9fe057c292301894a.png)
Leetcode: sword finger offer 59 - ii Maximum value of queue [deque + sortedlist]

【信号去噪】基于FFT和FIR实现信号去噪附matlab代码

Experience of remote office communication under epidemic situation | community essay solicitation

Niu Ke's question -- finding the least common multiple
![[video denoising] video denoising based on salt with matlab code](/img/79/e1f8255061a342e02232ac1e393217.png)
[video denoising] video denoising based on salt with matlab code

电子商务(njupt)
随机推荐
Mysql深入完全学习---阶段1---学习总述
cf:E. Price Maximization【排序 + 取mod + 双指针+ 配对】
Download the code and compile the environment
Analysis of runtime instantiation of XML view root node in SAP ui5
New project construction environment method
【信号去噪】基于非线性滤波器实现语音自适应去噪附matlab代码
Experience of remote office communication under epidemic situation | community essay solicitation
全国院校MBA、EMBA、MPA、MEM、提前面试(预面试)时间批次已出(持续更新中)-文都管联院
leetcode:66. add one-tenth
SAP BTP 上 workflow 和 Business Service 的 project 管理
记录一下phpstudy配置php8.0和php8.1扩展redis
防止敌方坦克重叠
Teach you how to learn the first set and follow set!!!! Hematemesis collection!! Nanny level explanation!!!
【视频去噪】基于SALT实现视频去噪附Matlab代码
Niuke brush questions part7
2022-2023 MEM pre approval interview notice of School of management, Xi'an Jiaotong University
Cf:b. array determinations
Make a static tank
北京邮电大学2023级工商管理硕士MBA(非全日制)已开启
Swagger2 easy to use