mongodb,redis,hbase 定位与区别

【转载】原文地址:  https://www.zhihu.com/question/30219620

1.关于NoSQL
比较赞同楼上的回答NoSQL is Not Only SQL
NoSQL的粗线的背景大概是因为随着数据量的扩大,在一些对数据集的分析中,传统的关系型数据库的计算成本变得很大。NoSQL凭借着它高大上的“易扩展、大数据、高可用、高性能、灵活性”,强势登场。

2.关于NoSQL的种类


3.HBase(列存储)


两大用途:
  • 特别适用于简单数据写入(如“消息类”应用)和海量、结构简单数据的查询(如“详单类”应用)。特别地,适合稀疏表。(个人觉得存个网页内容是极好极好的)
  • 作为MapReduce的后台数据源,以支撑离线分析型应用。
场景:Facebook的消息类应用,包括Messages、Chats、Emails和SMS系统,用的都是HBase;淘宝的WEB版阿里旺旺,后台是HBase;小米的米聊用的也是HBase;移动某省公司的手机详单查询系统。(单次分析,只能scan全表或者一个范围内的)
4.MongoDB
  • 是一个介于关系型和非关系型之间的一个产品吧,类SQL语言,支持索引
  • MongoDb在类SQL语句操作方面目前比HBase具备更多一些优势,有二级索引,支持相比于HBase更复杂的集合查找等。
  • BSON的数据结构使得处理文档型数据更为直接。支持复杂的数据结构
  • MongoDb也支持mapreduce,但由于HBase跟Hadoop的结合更为紧密,Mongo在数据分片等mapreduce必须的属性上不如HBase这么直接,需要额外处理。
5.Redis
  • Redis为内存型KV系统,处理的数据量要小于HBase与MongoDB
  • Redis很适合用来做缓存,但除此之外,它实际上还可以在一些“读写分离”的场景下作为“读库”来用,特别是用来存放Hadoop或Spark的分析结果。
  • Redis的读写性能在100,000 ops/s左右,时延一般为10~70微妙左右;而HBase的单机读写性能一般不会超过1,000ops/s,时延则在1~5毫秒之间。
  • Redis的魅力还在于它不像HBase只支持简单的字符串,他还支持集合set,有序集合zset和哈希hash

MongoDB做高性能数据库,Redis做缓存,HBase做大数据分析。MongoDB还无法取代关系型数据库。


传统关系型数据库面对数据规模、数据模型复杂时的不足,导致了NoSQL的快速发展,后者易扩展,性能高,支持灵活的数据模型。


网易云官方回答:(www.163yun.com

MongoDB是高性能、无模式的文档型数据库,支持二级索引,非常适合文档化格式的存储及查询。MongoDB的官方定位是通用数据库,确实和MySQL有些像,现在也很流行,但它还是有事务、join等短板,在事务、复杂查询应用下无法取代关系型数据库。


Redis是内存型Key/Value系统,读写性能非常好,支持操作原子性,很适合用来做高速缓存。


HBase存储容量大,一个表可以容纳上亿行、上百万列,可应对超大数据量要求扩展简单的需求。Hadoop的无缝集成,让HBase的数据可靠性和海量数据分析性能(MapReduce)值得期待。


所以说,关系型数据库和NoSQL各有优劣,两者结合,可以覆盖更多的业务场景。

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDBRedisHBase是三种不同类型的数据库,它们在数据模型、存储结构和适用场景上有一些区别。 1. 数据模型: - MongoDB是一种文档型数据库,使用BSON(二进制JSON)格式存储数据。它以文档的形式存储数据,每个文档可以具有不同的结构,类似于JSON对象。 - Redis是一种键值对数据库,它将数据存储为键值对的形式。键和值都是简单的字符串,但值可以是不同的数据类型,如字符串、列表、哈希表等。 - HBase是一种列族数据库,它以列族的形式组织数据。数据存储在表中,每个表可以有多个列族,每个列族中包含多个列。每个单元格可以存储多个版本的数据。 2. 存储结构: - MongoDB使用B树(B-tree)索引来支持高效的查询操作,可以根据各种条件进行灵活的查询和索引。 - Redis使用哈希表和跳跃表(Skip List)来存储键值对。它具有高速的读写性能,并支持各种数据结构操作。 - HBase使用Hadoop分布式文件系统(HDFS)来存储数据,并使用HBase的自有存储格式。它适用于大规模数据存储和高性能随机读写。 3. 适用场景: - MongoDB适合存储半结构化和非结构化数据,支持复杂查询和灵活的数据模型。适用于应用程序开发、内容管理、日志存储等场景。 - Redis适合用作缓存、队列和实时数据处理等场景,具有高速的读写性能和丰富的数据结构操作。 - HBase适合存储大规模的结构化数据,特别适用于分布式存储和高吞吐量的随机读写。常用于日志分析、大数据处理等场景。 需要根据具体的应用需求和场景选择适合的数据库。同时,这三种数据库也可以结合使用,根据不同的需求选择合适的组合方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值