当前位置:首页 > 教育培训 >

主流nosql优缺点

来源:原点资讯(www.yd166.com)时间:2023-06-17 10:28:01作者:YD166手机阅读>>

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

一、Redis


主流nosql优缺点,(1)

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优缺点,(2)


MongoDB的优点:

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

Mongodb的缺点:

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

三、HBase


主流nosql优缺点,(3)


HBase 优点:

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

HBase 缺点:

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

四、ElasticSearch


主流nosql优缺点,(4)

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优缺点,(5)

,

栏目热文

nosql今后发展(nosql技术发展趋势)

nosql今后发展(nosql技术发展趋势)

大数据时代,NoSQL数据库是企业构建数据能力的核心工具之一。12月1日,在2022腾讯全球数字生态大会NoSQL数据库...

2023-06-17 10:45:33查看全文 >>

估算涨幅什么意思啊(估计涨幅啥意思)

估算涨幅什么意思啊(估计涨幅啥意思)

首先要相信股票的价格是价值的反映,虽然无法一致,但总是在其上下波动。内在价值是本质,股价是表现,所谓估算股票的涨幅,就...

2023-06-17 10:33:09查看全文 >>

涨幅说明什么(涨幅是按哪个点算起的)

涨幅说明什么(涨幅是按哪个点算起的)

2022年考研国家线已经公布,瞬间引爆全网。之所以今年考研国家线能够受到这么多人的关注,关键是今年考研分数线普遍上涨。以...

2023-06-17 11:11:30查看全文 >>

增长和涨幅什么意思(怎么算工资涨幅百分比)

增长和涨幅什么意思(怎么算工资涨幅百分比)

增长这个知识点一直是资料分析中必考的知识点之一,也是其他知识点的基础部分,是所有考生必须要掌握的知识点。很多考生对这个...

2023-06-17 11:10:41查看全文 >>

年涨幅80%是什么意思(近一年涨幅什么意思)

年涨幅80%是什么意思(近一年涨幅什么意思)

昨天小姨说,2019年她在银行做的3年定期存款到期了,到手收益有8.25%。她告诉我,就是做了这笔定期,才躲过了市场的大...

2023-06-17 11:07:03查看全文 >>

nosql值不值得学习

nosql值不值得学习

对于很比系统而方,如何存储、保护和高效的访问数据是系统的重评判指标。现在发出现了两种声音:SQL 与NoSQL。那 我们...

2023-06-17 10:37:55查看全文 >>

什么是nosql的江湖称霸之路

什么是nosql的江湖称霸之路

NoSQL(Not Only SQL)是一种非关系型数据库的概念,用于描述一类不使用传统的关系型数据库管理系统(RDBM...

2023-06-17 10:52:48查看全文 >>

简述nosql技术的分类和应用场景(nosql参数与配置)

简述nosql技术的分类和应用场景(nosql参数与配置)

对比传统关系型数据库,NoSQL有着更为复杂的分类——键值、面向文档、列存储以及图数据库。这里就带你一览NoSQL各种类...

2023-06-17 10:28:16查看全文 >>

谈谈你对nosql的理解(如何理解nosql含义)

谈谈你对nosql的理解(如何理解nosql含义)

“谈谈你对NoSQL的理解”如果你遇到这个问题的时候,找不到回答的思路脑子里面一片混乱,然后回答的时候吞吞吐吐。建议你看...

2023-06-17 10:43:40查看全文 >>

nosql数据库可以用于网站开发吗

nosql数据库可以用于网站开发吗

【51CTO.com快译】近年来,Web开发已经成为了各个行业在自己领域迈向成功,所不可或缺的要素之一。与此同时,随着W...

2023-06-17 11:12:15查看全文 >>

文档排行