社区编辑申请
注册/登录
谈谈你对NoSQL的理解
数据库 其他数据库
随着互联网的发展,NoSQL数据库的产生就是为了解决超大规模和高并发系统中多重数据种类带来的挑战,特别是大数据应用的难题。目前具有代表性的NoSQL数据库有Redis、HBase、ES、MongoDB等等。

1.什么是NoSQL?

NoSQL呢常见的解释有Non-Relational SQL或者Not Only SQL,不过Not Only SQL被更多人接受,一般泛指非关系型数据库。它和关系型数据库不同的是,不保证关系数据的ACID特性。

图片

随着互联网的发展,NoSQL数据库的产生就是为了解决超大规模和高并发系统中多重数据种类带来的挑战,特别是大数据应用的难题。目前具有代表性的NoSQL数据库有Redis、HBase、ES、MongoDB等等。

图片

NoSQL非常适合以下几个场景:

图片

  • 数据模型比较简单;
  • 需要灵活性更强的数据库;
  • 对数据库性能要求较高;
  • 不需要高度的数据一致性;
  • 对于给定Key,比较容易映射复杂值的环境。

2.NoSQL分类

通常来说,现在主流的NoSQL数据库可以分为四大类:K-V键值数据库、列存储数据库、文档数据库和图形数据库。

图片

首先来看,K-V键值数据库,主要应用于内容缓存、处理大量数据的高负载访问,也可以用于记录系统日志。比较有代表性的产品有Redis、Memcached等等。

图片

其次是,列存储数据库,主要应用于布式数据的储存与管理,分布式可扩展性强,比较有代表性的产品有HBase、HadoopDB、BigTable等等。

图片

然后就是,文档数据库,主要应用于管理半结构化数据或者面向文档的数据,比较有代表性的产品有MongoDB,ES等等,当然,ES不仅仅只是数据库,它还是一个分布式搜索引擎,是基于Lucene来开发的,现在已经发展成为一个自有生态Elastic Stack。

图片

最后就是,图形数据库,主要应用于复杂、互连接但又低结构化的图结构场合,可以用来构建数据关系图谱,Neo4J、InfoGrid、GraphDB等等。

图片

下面我把四种分类的NoSQL数据库整理成了一个表格,并总结了它们的优缺点。

图片

3、主流NoSQL对比

对于NoSQL数据库对互联网开发的重要性就不多说了,在互联网分布式开发场景中,我认为掌握Redis、HBase、Elastic、MongoDB就能满足绝大部分需求。

图片

如果对数据的读写要求极高,并且数据规模不大,也不需要长期存储,那就选Redis;

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

如果要构造一个搜索引擎或者要完成一个高大上的数据可视化平台,并且数据本身也具有分析价值,就选ES;

如果你要存储海量数据,而且还不能预估数据规模将来会增长多么大,那么选HBase。

这里我也整理了一种表格,大家可以保存一下:

图片

最后,再给大家来个更加形象的对比:

Redis就相当于开战斗机,MongoDB就相当于坐高铁,HBase就相当于航母,ES那就是帝国铁骑,山地装甲机器人。

图片

责任编辑:武晓燕 来源: Tom弹架构
相关推荐

2022-06-27 17:01:34

NoSQ数据库SQL

2022-05-30 18:18:23

NoSQL数据库

2022-02-14 09:00:00

2011-03-14 15:56:37

2015-07-06 14:23:54

NoSQLSQL非关系型数据存储

2015-06-16 10:39:43

NoSQL分布式算法

2011-03-31 14:02:59

2011-04-06 15:44:02

SQLNOSQL思维转变

2011-08-18 14:09:35

NoSQL

2020-04-29 08:04:11

NoSQLMySQLSQL

2009-07-06 08:36:28

NoSQL关系数据库

2018-08-28 16:22:57

2012-02-16 09:20:19

NoSQL

2020-07-04 11:06:45

NoSQL数据库系统设计

2011-03-14 14:59:01

2021-03-11 09:01:03

NoSQL数据库关系数据库

2020-10-31 22:01:40

NoSQL数据库

2012-05-15 11:03:22

NoSQL数据建模

2020-12-18 09:11:43

2015-10-29 10:16:10

MySQLNoSQL数据库

同话题下的热门内容

如何设计多语言数据库高并发+海量数据下如何实现系统解耦?「下」每秒上千次高并发访问,HDFS优雅的抗住了干掉几百行的大SQL,我用HadoopFlink SQL 知其所以然:Explain、Show、Load、Set 子句图数据库和图计算的区别,终于有人讲明白了

编辑推荐

几款开源的图形化Redis客户端管理软件推荐NoSQL数据库概览及其与SQL语法的比较为什么MongoDB敢说“做以前你从未能做的事”Python操作MongoDB看这一篇就够了一文看懂分布式数据库原理和 PostgreSQL 分布式架构
我收藏的内容
点赞
收藏

51CTO技术栈公众号