您当前的位置:首页 > 电脑百科 > 数据库 > 百科

主流NOSQL的比较与技术选型

时间:2020-01-08 17:05:26  来源:  作者:

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

一、Redis

 

主流NOSQL的比较与技术选型

 

Redis的优点:

  1. 读写性能优异;
  2. 支持数据持久化,支持AOF和RDB两种持久化方式;
  3. 支持主从复制,主机会自动将数据同步到从机,可以进行读写分;
  4. 数据结构丰富:除了支持string类型的value外还支持string、hash、set、sortedset、list等数据结构。

Redis的局限性:

  1. Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)。
  2. 支持简单的事务需求,但业界使用场景很少,并不成熟,既是优点也是缺点。
  3. Redis在String类型上会消耗较多内存,可以使用dict(hash表)压缩存储以降低内存耗用。

二、MongoDB

 

主流NOSQL的比较与技术选型

 

 

MongoDB的优点:

  1. 无模式;
  2. 查询与索引方式灵活,是最像SQL的Nosql;
  3. 支持复制集、主备、互为主备、自动分片等特性。

Mongodb的缺点:

  1. 在集群分片中的数据分布不均匀;
  2. 单机可靠性比较差;
  3. 大数据量持续插入,写入性能有较大波动;
  4. 磁盘空间占用比较大。

三、HBase

 

主流NOSQL的比较与技术选型

 

 

HBase 优点:

  1. 存储容量大,一个表可以容纳上亿行,上百万列;
  2. 可通过版本进行检索,能搜到所需的历史版本数据;
  3. 负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce分布式计算系统);
  4. 可有效避免单点故障的发生。

HBase 缺点:

  1. 基于JAVA语言实现及Hadoop架构意味着其API更适用于Java项目;
  2. node开发环境下所需依赖项较多、配置麻烦(或不知如何配置,如持久化配置),缺乏文档;
  3. 占用内存很大,且鉴于建立在为批量分析而优化的HDFS上,导致读取性能不高;
  4. API相比其它 NoSql 的相对笨拙。

四、ElasticSearch

 

主流NOSQL的比较与技术选型

 

ElasticSearch的优点:

  1. 横向可扩展性: 作为大型分布式集群,很容易就能扩展新的服务器到ES集群中;也可运行在单机上作为轻量级搜索引擎使用。
  2. 更丰富的功能:与传统关系型数据库相比,ES提供了全文检索、同义词处理、相关度排名、复杂数据分析、海量数据的近实时处理等功能。
  3. 分片机制提供更好地分布性: 同一个索引被分为多个分片(Shard),利用分而治之的思想提升处理效率。
  4. 高可用: 提供副本(Replica)机制,一个分片可以设置多个副本,即使在某些服务器宕机后,集群仍能正常工作。
  5. 开箱即用: 提供简单易用的 API,服务的搭建、部署和使用都很容易操作。

ElasticSearch 的缺点:

  1. 最明显的就是字段类型无法修改、在需要添加新数据与新字段的时候,如果elasticSearch进行搜索是可能需要重新修改格式。之前的数据需要重新同步,对数据的管理有很多困难。
  2. 写入性能较低和高硬件资源消耗

总结:

MongoDB、ElasticSearch、Redis、HBase,以上四种数据库是当今NoSQL中最火爆的几款,掌握了它们,你基本就能HOLD住互联网开发中的绝大多数数据存储需求。这里还想强调的一点是,如同买衣服一样,没有最好的数据库,只有最适合你的应用场景的数据库,因此选用一款数据库前一定要想清楚自己的应用场景是否合适。再给大家总结下这些数据库的适用场景:

  • 如果你对数据的读写要求极高,并且你的数据规模不大,也不需要长期存储,选redis;
  • 如果你的数据规模较大,对数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询,选MongoDB;
  • 如果你需要构造一个搜索引擎或者你想搞一个看着高大上的数据可视化平台,并且你的数据有一定的分析价值或者你的老板是土豪,选ElasticSearch;
  • 如果你需要存储海量数据,连你自己都不知道你的数据规模将来会增长多么大,比如大型电商(京东、天猫)的历史订单,每天都产生千万级量,那么就选HBase。

四种NOSQL对比图如下所示:

主流NOSQL的比较与技术选型

 



Tags:NOSQL   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、NoSQL的简介NoSQL比关系型数据库性能高数倍。NoSQL凭借 “易扩展、大数据、高可用、高性能、灵活性”特点强势引领全场。CP型分布式数据库,能够保证数据的强一致性和分区...【详细内容】
2021-02-25  Tags: NOSQL  点击:(448)  评论:(0)  加入收藏
物联网数据很复杂,需要多个用户访问,所以不要犯创建数据孤岛的错误。几乎在每个行业,都有一个由物联网数据驱动的数字化转型正在进行中。重要的是要认识到物联网不是关于事物...【详细内容】
2020-11-27  Tags: NOSQL  点击:(93)  评论:(0)  加入收藏
Couchbase是一个较新的、发展迅速的nosql数据库技术。2014年,viber宣布使用Couchbase替换Mongodb,以适应10亿级的用户量,目前,Couchbase已大量运用于生产环境,国内使用的公司主要...【详细内容】
2020-06-27  Tags: NOSQL  点击:(102)  评论:(0)  加入收藏
SQL / NoSQL,ACID与BASE一致性模型以及CAP定理的高级概述> Photo by fabio on Unsplash 内容概述· SQL与NoSQL数据库概述· ACID与BASE一致性模型· CAP...【详细内容】
2020-05-15  Tags: NOSQL  点击:(118)  评论:(0)  加入收藏
MongoDB、ElasitcSearch、Redis、HBase是现今最火的四款NoSQL数据库产品。在实际的开发中,这四种数据库有什么区别?我到底该选哪个?想必这是很多互联网开发都遇到过的难题。下...【详细内容】
2020-01-08  Tags: NOSQL  点击:(116)  评论:(0)  加入收藏
作者 | dbLenis责编 | 郭芮出品 | CSDN 博客当今数据库供应商风头正茂的,要数这三家公司:Amazon、Google、Microsoft。没错,他们都是云计算提供者。火热的三款看家产品分别是:Am...【详细内容】
2019-11-28  Tags: NOSQL  点击:(78)  评论:(0)  加入收藏
数据分类了解SQL和NoSQL之前,我们先了解下数据有几种分类:结构化数据、非结构化数据、半结构化数据。结构化数据就是由行和列组成的,可以用二维表来存储,非结构化数据比如文本、...【详细内容】
2019-08-30  Tags: NOSQL  点击:(197)  评论:(0)  加入收藏
推荐阅读:吊打面试官!MySQL灵魂100问,你能答出多少?前言文章篇幅较长,建议先收藏再阅读你是否在为系统的数据库来一波大流量就几乎打满CPU,日常CPU居高不下烦恼?你是否在各种NoSql...【详细内容】
2019-08-14  Tags: NOSQL  点击:(222)  评论:(0)  加入收藏
前言NoSQL,泛指非关系型的数据库。随着互联网不断的发展,传统的关系数据库在应付新互联网模式的网站,特别是超大规模和高并发的SNS类型的纯动态网站已经显得力不从心,暴露了很...【详细内容】
2019-06-11  Tags: NOSQL  点击:(389)  评论:(0)  加入收藏
▌简易百科推荐
1增1.1【插入单行】insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values (&#39;开心朋朋&#39;,&#39;男&#39;,&#39;1980/6/15&#3...【详细内容】
2021-12-27  快乐火车9d3    Tags:SQL   点击:(2)  评论:(0)  加入收藏
最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫, 不知道各种写法孰优孰劣,该选用哪种写法,以及各种写法的优缺点,本文以一个简单的查询...【详细内容】
2021-12-23  linux上的码农    Tags:sql   点击:(9)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  GitHub精选    Tags:HasorDB   点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22    51CTO  Tags:Liquibase   点击:(4)  评论:(0)  加入收藏
场景描述:由于生产环境的表比较复杂,字段很多。这里我们做下简化,只为说明今天要聊的问题。有两张表 tab1,tab2: tab1 数据如下: tab2 数据如下: 然后给你看下,我用来统计 name=&#3...【详细内容】
2021-12-20  Bald    Tags:SQL   点击:(7)  评论:(0)  加入收藏
前言知识无底,学海无涯,知识点虽然简单,但是比较多,所以将MySQL的基础写出来,方便自己以后查找,还有就是分享给大家。一、SQL简述1.SQL的概述Structure Query Language(结构化查...【详细内容】
2021-12-16  谣言止于独立思考    Tags:SQL基础   点击:(13)  评论:(0)  加入收藏
前言作为一名测试工程师,工作中在对测试结果进行数据比对的时候,或多或少要和数据库打交道的,要和数据库打交道,那么一些常用的 SQL 查询语法必须要掌握。最近有部分做测试小伙...【详细内容】
2021-12-14  柠檬班软件测试    Tags:SQL   点击:(15)  评论:(0)  加入收藏
话说C是面向内存的编程语言。数据要能存得进去,取得出来,且要考虑效率。不管是顺序存储还是链式存储,其寻址方式总是很重要。顺序存储是连续存储。同质结构的数组通过其索引表...【详细内容】
2021-12-08  小智雅汇    Tags:数据存储   点击:(18)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  雪竹聊运维    Tags:数据库   点击:(26)  评论:(0)  加入收藏
一、前言 大家好,我是小诚,《从0到1-全面深刻理解MySQL系列》已经来到第四章,这一章节的主要从一条SQL执行的开始,由浅入深的解析SQL语句由客户端到服务器的完整执行流程,最...【详细内容】
2021-11-09  woaker    Tags:SQL   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条