MongoDB、ES、Redis、HBase四种数据库的简单区别

ES、MongoDB、HBase的区别和使用场景 ES, MongoDB, HBase的区别和使用场景。 阅读详情

MongoDB

优点:表结构灵活可变,字段类型可以随时修改。
缺点:MongoDB不需要定义表结构这个特点给表结构的修改带来了极大的方便,但是也给多表查询、复杂事务等高级操作带来了阻碍。

应用场景:MongoDB很适合那些表结构经常改变,数据的逻辑结构没又没那么复杂不需要多表查询操作,数据量又比较大的应用场景。例如,游戏应用等。

Redis

优点:key-value存储所带来的简单和高性能。所谓key-value存储,就是每一条记录只包含一个用于查询数据的Key,以及与之对应的存储数据的value,就如同现实生活中的门牌号与住户,而没有诸如表、字段这些常规数据库中必需有的复杂概念,所有的查询都仅仅依赖于key值。
缺点:由于阉割掉了数据表、字段这样的重要特性,且所有的查询都依赖key,因此Redis无法提供常规数据库所具备的多列查询、区段查询等复杂查询功能。同时,由于Redis需要把数据存在内存中,这也大大限制了Redis可存储的数据量,这也决定了Redis难以用在数据规模很大的应用场景中。

应用场景:Redis牺牲了常规数据库中的数据表、复杂查询等功能,换来了很大的性能提升,特别适合那些对读写性能要求极高,且数据表结构简单(key-value、list、set之类)、查询条件也同样简单的应用场景。

ElasticSearch(ES)

优点:ES的特点,正如其名,那就是搜索。严格的说,ES不是一个数据库,而是一个搜索引擎,ES的方方面面也都是围绕搜索设计的。ES通过建立倒排索引实现全文搜索。具体来说,ES会建立一个覆盖表中所有文档、所有字段的庞大的倒排索引,以实现对存入ES中的所有数据进行快速检索。因此只要是存入ES的数据,无论再复杂的聚合查询也可以得到不错的性能,而且你再也不用为如何建立各种复杂索引而头痛了。
缺点:最明显的就是字段类型无法修改、写入性能较低和高硬件资源消耗。前边讲到ES会自动的替你建立索引,尽管这能给全文搜索以及聚合查询带来很多好处还能替你省了建索引这一麻烦事,但是这个特性也会带来一堆问题。ES需要在创建字段前要预先建立Mapping,Mapping中包含每个字段的类型信息,ES需要根据Mapping为字段建立合适的索引。由于这个Mapping的存在,ES中的字段一但建立就不能再修改类型了。(例如,你建的数据表的某个字段忘了加全文搜索,你想临时加上,但是表已经建好并且已经有很多数据了,这时候该怎么办呢?不好意思,你只能把整个数据表删了再重建一遍!)并且ES的写入默认1S的写入延迟,也就是说你的数据在写入后要至少等1S才能被查询到。

应用场景:ES的全文搜索特性使它成为构建搜索引擎的利器。除此之外,ES很好的支持了复杂聚合查询这一特点还使得ES非常适合拿来作数据分析使用。

Hbase

优点:HBase也继承了Hadoop项目的最大优点,那就是对海量数据的支持,以及极强的横向(存储容量)扩展能力。和Redis类似,HBase也需要为每一行数据定义一个key,之后所有的查询都依赖这个key进行。但是不同的地方在于,HBase中的一行数据还可以有非常多的列项(类似MongoDB字段),数据会按照列进行分组和存储,同一列的数据存储在同一个地方,这也是HBase被称为列式存储数据库的原因。从本质上来说,HBase相当于是把逻辑上的一张大表按照列族分拆成若干张小表分别进行存储,不仅是列,数据的行数到达一定数量后表也会再被拆分。因此,HBase能够把巨大的表分布到很多台机器上,从而容纳规模近乎无限的数据。同时,对HBase进行横向扩展也非常方便,你基本只需要添加新的机器,而不用对数据做任何改动,就可以实现数据库容量线性的增长,这在其他SQL数据库中是难以做到的(尽管其他数据库也有诸如MongoDB分片集群之类的功能帮助你进行数据规模横向扩展,但是无论是在实施的难度上还是在对数据的影响方面这些都无法跟HBase相提并论。)
缺点:HBase的列式存储特性带来了海量数据规模的支持和极强的扩展能力,但是也给数据的读取带来很大的局限。由于只有同一列族的数据才会被存放在一起,而且所有的查询都必须要依赖Key,这就使得很多复杂查询难以进行。例如,如果你的查询条件涉及多个列项,或者你无法获取要查询数据的key,那么查询效率将会非常低下。因此,HBase仅仅适合。

应用场景:HBase的列式存储特点带来了对海量数据的容纳能力,因此非常适合数据量极大,查询条件简单,列与列之间联系不大的轻查询应用场景。最典型的比如搜索引擎所使用的网页数据库。HBase不适合数据结构复杂,且需要复杂查询的应用场景。另外值得一提的是,HBase是很重的一款产品,需要依赖很多的Hadoop组件,因此如果你的数据规模不大,MongoDB这类产品完全可以更好的满足你的需求。

总结

对数据的读写要求极高,并数据规模不大,也不需要长期存储,选redis;

数据规模较大,数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询,选MongoDB;

需要构造一个搜索引擎或者你想搞一个看着高大上的数据可视化平台,并且你的数据有一定的分析价值或者你的老板是土豪,选ElasticSearch;

需要存储海量数据,不知道数据规模将来会增长多么大,那么选HBase。

在这里插入图片描述

三级等保网络拓扑图实战:从零搭建符合标准的医院安全架构 本文详细阐述了如何从零开始设计并搭建符合三级等保标准的医院网络安全架构。文章基于“一个中心,三重防护”的核心框架,深入解析了医院网络分区设计、安全域划分、关键安全设备选型与配置等实战要点,并提供了绘制专业网络拓扑图的技巧与等保测评准备指南,旨在帮助医院IT人员系统化地构建既合规又实用的纵深防御体系。 阅读详情

相关推荐

iOS WKWebView H5微信支付跳转

iOS WKWebView H5微信支付跳转 需求:iOS客户端实现嵌入H5进行微信支付跳转到微信客户端,支付完成后再跳转回我们的APP,解决WKWebView无法跳转回APP的BUG. 阅读前提: 了解WKWebView基本初始化及使用 了解如何利用URL Schemes进行应用间跳转 公司或个人已经在微信后台注册了一级域名 GitHub地址(附代码) :iOS WKWebView H5微信支付跳转 简书地址 :iOS WKWebView H5微信支付跳转 博客地址 :iOS WKWe...

ForeverMyheart的博客 2041

ES和MongoDB:一次别开生面的比较

综上所述,ES和MongoDB都有着自己的优势和劣势,在具体的场景下需要进行选择和使用。如果需要进行全文检索和聚合分析,可以选择ES;如果需要进行Web应用程序和大规模数据存储和查询,可以选择MongoDB。如果需要结合使用,需要考虑其生态环境和支持度。无论选择哪种方案,都需要根据具体的需求进行综合考虑。

KRYST4L123的博客 9605

无源定位入门(二):FDOA(2)信号模型和原理

信号模型 假设地面固定目标信号源位置为 ,有M架飞机随机分布在空中,并作匀速直线运动。时刻t的时候第i架飞机的位置为,飞行速率为 , 假设目标的信号中心频率为 ,电磁波的传播速度为 ,则此时每个飞机接收目标信号的频率为 以第1架飞机为参考基站,目标信号到达第n架飞机和参考基站之间的FDOA 测量值可表示为 ...

syy_1797的博客 5952

Elasticsearch和MongoDB对比

MongoDB和Elasticsearch都属于文档型数据存储,两者的很多功能和特性高度重合, 但其实两者定位完全不同。

西京刀客 8169

Visual C++与WPF混合开发:C++/CLI桥接技术实现现代化桌面应用

在桌面应用开发领域,混合编程技术是连接不同技术栈、复用核心资产的关键手段。其核心原理在于通过特定的桥接层,实现托管代码与非托管代码之间的互操作,从而打破语言和运行时环境的壁垒。这项技术的核心价值在于,它允许开发者将高性能、高稳定性的原生C++业务逻辑库,与现代化、高表现力的WPF用户界面无缝结合,避免了重写核心代码的巨大成本和风险。在工业控制、数据可视化、上位机软件等对性能和界面均有高要求的应用场景中,这种架构尤为适用。本文以C++/CLI作为桥接技术,详细演示了如何构建一个包含原生C++核心层、C++/C

weixin_33146151的博客 273

NX/UG二次开发—CAM—设置程序修剪边界Boundary

最近做了一个设置CAM程序边界的小工具,分享一下经验(官方的代码在文章末尾处),以下均以修剪边界曲线为例。 以下为官方提供的源码: /***************************** Include Files **********************************/ #include <stdlib.h> #include <uf.h> #include <uf_obj.h> #include <uf_object_type

门前大桥下,游过一群鸭,快来看一看,原来是C++ 3726

es和mongdb对比

本文分析了es和mongdb使用场景区别。

asdasdkhs的博客 892

从入门到精通:Cursor使用全攻略

Cursor是一款基于VSCode深度定制的AI编程工具,由Anysphere公司开发。它将AI技术与代码开发深度融合,能够理解自然语言指令并生成高质量代码,支持代码补全、跨文件上下文理解等功能。本文详细介绍了Cursor的安装设置、界面导航、基本操作和Composer模式等核心功能,并提供了高效提示词写作技巧和实际应用案例(如浏览器插件开发、复杂表单组件构建等)。文章还总结了使用注意事项和常见问题解决方案,展望了AI编程工具的发展前景。Cursor通过智能代码生成和项目理解能力,显著提升了开发效率,适合各

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 6447

MongoDB、ElasticSearch、Redis、HBase这四种热门数据库的优缺点及应用场景

MongoDB MongoDB是当今最火爆的NoSQL数据库。MongoDB最早在09年发布,算得上是早期大数据时代的数据库代表作了。随着MongoDB的火爆,研发MongoDB的团队还专门成立了MongoDB公司来对MongoDB进行维护和推广,现在这个公司已经在纳斯达克上市,市值达到十几亿美元,算得上是技术变现的典范了。 MongoDB最大的特点是表结构灵活可变,字段类型可以随时修改。MongoDB中的每一行数据只是简单的被转化成Json格式后存储,因此MongoDB中压根没有MySQL中表结构这样

天天water的专栏 4517

Python中的字典(Dictionary)学习

上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢?但是这样很不方便,我们把电话号码记录下来,就是为了有什么事能及时联系上这些童鞋。如果用列表来存储这些,列表越长,我们查找起来耗时就越长。

热情、奔放、快乐编程! 498

《Autosar_BSW高阶配置》总目录_培训教程持续更新中...

目录 一、Autosar COM Module 二、Autosar BswM Module 三、Autosar EcuM Module 四、Autosar DCM Module 五、Autosar DEM Module 六、其它Module陆续推出 欢迎大家订阅《Autosar_BSW高阶配置》专栏(可以理解为是Autosar培训教程),该专栏每周至少更新一篇,一次订阅,不再二次收费,献上常用的案例和配置方法。下方整理了相关博文的链接(单击蓝色字体即可跳转),方便大家获取。 本专栏...

「汽车电子助手」的博客 4万+

ES, MongoDB, HBase的区别和使用场景

本文介绍技术选型:ES, MongoDB, HBase的区别和使用场景。

IT利刃出鞘的博客 5747

Android HAL 架构详解,底层开发不再难

HAL Binder 这套机制牛在哪?性能:一次拷贝,快如闪电。规范:HIDL 让接口定义整齐划一,维护省心。兼容:版本管理做得好,新老设备都能跑。有了这套通信体系,HAL 就像打了通脉,上下贯通,硬件操作变得丝滑无比。通信机制搭好了桥,接下来 HAL 得真正把手伸到硬件上。这部分是 HAL 的 “最后一公里”,直接决定硬件能不能被用起来。HAL 的接口定义是整个体系的灵魂,它决定了上层和底层怎么 “说话”。

大模型大数据攻城狮的专栏 1659

数据库对比(Redis/Mysql/SQLite/ES/MongoDB)

做后端开发的程序员基本都要学会数据库的相关知识。

NCU_wander的博客 3827

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

MongoDB、Redis、elasticSearch、hbase的对比

MongoDB、Redis、elasticSearch、hbase的对比 MongoDB 优点:   (1) 最大的特点是表结构灵活可变,字段类型可以随时修改。   (2) 插入数据时,不必考虑表结构的限制。   (3) 不需要定义表结构这个特点给表结构的修改带来了极大的方便。 缺点   给多表查询、复杂事务等高级操作带来了阻碍 适用场景   (1) MongoDB很适合那些表结构经常改变,数据...

libotao的博客 305

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

(转载) MongoDB、ElasticSearch、Redis、HBase这四种热门数据库的优缺点及应用场景

MongoDB、ElasitcSearch、Redis、HBase是现今最火的四款NoSQL数据库产品。在实际的开发中,这四种数据库有什么区别?我到底该选哪个?想必这是很多互联网开发都遇到过的难题。下面就给大家总结下这四种数据库产品的特点和应用场景,希望能够帮助你更深刻的理解这四种数据库的特点,好帮助你作出正确的数据库选择。 MongoDB MongoDB是当今最火爆的NoSQL...

a198079794050298的博客 342

NoSql数据库 redis, Hbase, ElasticSearch, Mogodb

https://zhuanlan.zhihu.com/p/37964096 MongoDB、ElasitcSearch、Redis、HBase是现今最火的四款NoSQL数据库产品。在实际的开发中,这四种数据库有什么区别?我到底该选哪个?想必这是很多互联网开发都遇到过的难题。下面就给大家总结下这四种数据库产品的特点和应用场景,希望能够帮助你更深刻的理解这四种数据库的特点,好帮助你作出正确的数据库选...

lucyxu107的博客 329

Hive、Hbase、mysql、MongoDB、Redis、elasticSearch区别|对比

Hive、Hbase、mysql区别

nikyae的博客 1505

关系型数据库(mysql等)和非关系型数据库(Redis、ElasticSearch、HBase等)对比

目录 一、关系型数据库 二、非关系型数据库 1. 缓存型数据库 (1)Redis (2)Memcached 2. 文档型数据库 (1)ElasticSearc (2)mongoDB 3. 列式型数据库 (1)HBase (2)Cassandra 一、关系型数据库 主流的有3个,mysql、sqlServer、Oracle 以sql为例,关系型数据库存储结构是二维表结构,...

攻城狮Kevin 8467

数据库分类及主流数据库对比

数据库使用系列专栏:数据库使用系列文章 目录 1 数据库分类 1.1 关系型数据库 1.2 非关系型数据库 2 数据库对比 1 数据库分类 数据库根据数据结构可分为关系型数据库和非关系型数据库。非关系型数据库中根据应用场景又可分为键值(Key-Value)数据库、列存储数据库、面向文档数据库、搜索引擎数据库等。 1.1 关系型数据库 这种类型的数据库是最古老的数据库类型,关系型数...

uiuan00的专栏 1万+

2018.10.17 HDFS,Hive,HBase,MongoDB,Redis,ES

HDFS:       Hadoop 的分布式文件系统称为 HDFS,它是为以流式数据访问模式存储超大文件而设计的文件系统。       HDFS适合: 存储并管理PB级数据 处理非结构化数据 注重数据处理的吞吐量 应用模式为:一次写多次读 不适合: 存储小文件 大量的随机度 需要修改文件         Hive: Hive是一个构建与Hadoop顶层的数据仓库工具,可以查...

abutoto的博客 2191

Redis vs MongoDB

Redis 特性;Redis 应用场景 Mongodb 特性;Mongodb 应用场景

u013433591的博客 998
上一篇: Python那些内置函数
下一篇: 学习——基于Flink流处理的动态实时亿级全端用户画像系统 -- Part I
洋气的网名
博客等级 码龄11年 2粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值