加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

发布时间:2018-10-18 20:55:07 所属栏目:MySql教程 来源:佚名
导读:副标题#e# 9月15日技术沙龙 | 如何将智能化和运维工作相结合,实现智能运维! NoSQL的四大种类 NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,
副标题[/!--empirenews.page--] 9月15日技术沙龙 | 如何将智能化和运维工作相结合,实现智能运维!

 MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

NoSQL的四大种类

NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数据库处理任务,这时NoSQL凭借易扩展、大数据量和高性能以及灵活的数据模型成功的在数据库领域站稳了脚跟。

目前大家基本认同将NoSQL数据库分为四大类:键值存储数据库,文档型数据库,列存储数据库和图形数据库,其中每一种类型的数据库都能够解决关系型数据不能解决的问题。在实际应用中,NoSQL数据库的分类界限其实没有那么明显,往往会是多种类型的组合体。

MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

主流nosql的详解:MongoDB、Hbase、Redis

MongoDB、Hbase、Redis等NoSQL优劣势、应用场景

MongoDB

MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代统的关系型数据库或键/值存储方式。

1.MongoDB特点

  •  所用语言:C++
  •  特点:保留了SQL一些友好的特性(查询,索引)。
  •  使用许可: AGPL(发起者: Apache)
  •  协议: Custom, binary( BSON)
  •  Master/slave复制(支持自动错误恢复,使用 sets 复制)
  •  内建分片机制
  •  支持 javascript表达式查询
  •  可在服务器端执行任意的 javascript函数
  •  update-in-place支持比CouchDB更好
  •  在数据存储时采用内存到文件映射
  •  对性能的关注超过对功能的要求
  •  建议最好打开日志功能(参数 --journal)
  •  在32位操作系统上,数据库大小限制在约2.5Gb
  •  空数据库大约占 192Mb
  •  采用 GridFS存储大数据或元数据(不是真正的文件系统)

2.MongoDB优点:

1)更高的写负载,MongoDB拥有更高的插入速度。

2)处理很大的规模的单表,当数据表太大的时候可以很容易的分割表。

3)高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点 (数据中心)故障转移。

4)快速的查询,MongoDB支持二维空间索引,比如管道,因此可以快速及精确的从指定位置 获取数据。MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中。如果内 存资源相当丰富的话,这将极大地提高数据库的查询速度。

5)非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而 导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响, 整个过程会非常快速。

3.MongoDB缺点:

1)不支持事务。

2)MongoDB占用空间过大 。

3)MongoDB没有成熟的维护工具。

4.MongoDB应用场景

1.)适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;

2) 非常适合文档化格式的存储及查询;

3.)高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。

4.)对性能的关注超过对功能的要求。

HBase

HBase 是 Apache Hadoop 中的一个子项目,属于 bigtable 的开源版本,所实现的语言为Java(故依赖 Java SDK)。HBase 依托于 Hadoop 的 HDFS(分布式文件系统)作为最基本存储基础单元。

1.HBase 特点:

  •  所用语言: Java
  •  特点:支持数十亿行X上百万列
  •  使用许可: Apache
  •  协议:HTTP/REST (支持 Thrift,见编注4)
  •  在 BigTable之后建模
  •  采用分布式架构 Map/reduce
  •  对实时查询进行优化
  •  高性能 Thrift网关
  •  通过在server端扫描及过滤实现对查询操作预判
  •  支持 XML, Protobuf, 和binary的HTTP
  •  Cascading, hive, and pig source and sink modules
  •  基于 Jruby( JIRB)的shell
  •  对配置改变和较小的升级都会重新回滚
  •  不会出现单点故障
  •  堪比MySQL的随机访问性能

3. HBase 优点

1) 存储容量大,一个表可以容纳上亿行,上百万列;

2.)可通过版本进行检索,能搜到所需的历史版本数据;

3.)负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce);

4.)在第3点的基础上可有效避免单点故障的发生。

4.HBase 缺点

1. 基于Java语言实现及Hadoop架构意味着其API更适用于Java项目;

2. node开发环境下所需依赖项较多、配置麻烦(或不知如何配置,如持久化配置),缺乏文档;

3. 占用内存很大,且鉴于建立在为批量分析而优化的HDFS上,导致读取性能不高;

4. API相比其它 NoSql 的相对笨拙。

5.HBase 适用场景

1)bigtable类型的数据存储;

2)对数据有版本查询需求;

3)应对超大数据量要求扩展简单的需求。

Redis

Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读