NoSQL

NoSQL全名 Not Only SQL,而非No SQL

NoSQL是伴随着WEB2.0的兴起而迅速发展,它的出现就是为了解决大规模的非结构化数据的存储,所以目前市面上的NoSQL都天生支持【集群】和【数据分片】

这里的天生支持是指使用内部机制实现,而非类似MySql的集群和分片,需要使用插件MySQL Proxy来实现,所以在配置和使用上更加灵活以及稳定。

NoSQL的分类

1. 键值 Key/value (Redis,Membase )

键值数据库为了达到读取的最大效率,所有的数据都是放在内存的,目前键值数数据库多用于分布式缓存的搭建。

这里请注意:键值数据库中的value不仅仅可以存储基本数据类型,也可以存储Collection,二进制文件等。

2. 文档数据库 ( Mongodb)

Mongodb可算是文档数据库中的佼佼者,许多不了解的同学认为NoSQL都很粗糙,其实不然。Mongodb支持对文档的内部属性进行索引,筛选,也支持分页,全文搜索,基本上关系数据库支持的Mongodb都支持,除了关联查询。

Mongodb支持地理位置的记录和筛选,即记录位置数据,可通过位置信息搜索附近的人.....类似微信的摇一摇搜索

3. 列数据库(HBase)

列数据库和传统的关系数据库存储结构很接近,基于行和列可以定位单元格数据。相对于传统数据库的单元格数据,HBase是划分列组,并且每个单元格数据支持历史版本。

不仅仅如此,基于HBase还有Hadoop,MapReduce,Spark等一系列的成熟的大数据解决方案!

4. 图数据库 (Neo4J)

图数据库其实是记录“关系数据”的。类似社交软件的关系图,例如用户A 和 B 是[朋友][亲人]关系,B和C是[恋人][同性]关系,通过Tag方式的关系,图数据库可以绘制出一张关系网,并且可以通过条件进行筛选。

NoSQL和关系数据库(RDBMS)的关系

很多人认为NoSQL和关系数据库是此消彼长的关系,这是错误的概念。关系数据库在存储结构化数据和事务方面是不可替代的。而且关系数据库历史悠久,在很多行业都是稳定可靠的解决方案。

NoSQL处在一个爆发期,稳定性上远远不及RDBMS,而且由于缺乏较好的事务支持,很多行业(比如财务)并不能适用。

NoSQL完全摒弃了数据之间的关系,不支持关联查询,这在一些企业应用中,也是不能忍受的。

目前NoSQL的地位

国内大多数的互联网公司,也只是小范围的试用NoSQL,或者使用NoSQL作为辅助,并没有成为主流。比如,淘宝使用MySQL集群来实现其主业务,只是搭配Memcache作为分布式缓存。

虽然NoSQL一定会成为互联网的主流,但是一定会有一个较长的过渡期。

企业应用和NoSQL

传统的企业应用都有规范的数据结构,更要求有完善的事务支持,而且数据量都不会太大,所以使用NoSQL反而得不偿失。

我上面特别强调“传统的企业应用”,是因为针对企业的数据都不会太大,对性能要求是最低的。但是如果你开发类似于“物联网”这类的企业平台,使用NoSQL是势在必行。

即使你的定位不是物联网级别的平台,也可以搭配键值数据库作为缓存服务器使用,NoSQL天生的集群特性,一旦搭建起来,就不单单是“缓存服务器”了,而是“分布式缓存”!!让你的平台分分钟变得“高大上”!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 04:15:04

NoSQL的相关文章

云计算背后的秘密:NoSQL诞生的原因和优缺点

转载收藏一篇对nosql讲解的比较全面的文章:http://blog.csdn.net/xlgen157387/article/details/47908797 这篇文章将和大家聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起? 诞生的原因 随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求,主要体现在下面这四个方面: 1. 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度; 2. 支撑海量的数据和流量:对于搜索这样大型应用而

大并发大数量中的MYSQL瓶颈与NOSQL介绍

NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面.今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会. 非 常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL 的发展,希望跟我一样有兴趣的朋友加入进来.这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自

NoSQL开篇——为什么要使用NoSQL

NoSQL概念 随着web2.0的快速发展,非关系型.分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性.NoSQL概念在2009年被提了出来.NoSQL最常见的解释是"non-relational","Not Only SQL"也被很多人接受.("NoSQL"一词最早于1998年被用于一个轻量级的关系数据库的名字.) NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的.列存储.图型数据库.xml数据库等.

NoSQL数据库:数据的一致性

NoSQL数据库:数据的一致性 读取一致性 强一致性 在任何时间访问集群中任一结点,得到的数据结果一致: 用户一致性       对同一用户,访问集群期间得到的数据一致:        解决用户一致性:使用粘性会话,将会话绑定到特定结点来处理:        这样会降低负载均衡器的性能: 最终一致性       集群中各结点间由于数据同步不及时造成暂时的数据不一致,但数据同步完成后,最终具有一致性: 更新一致性 悲观方式 使用写锁 大幅降低系统响应能力 可能导致死锁 乐观方式 先让冲突发生,再检

十种NoSQL数据库以及对比

 虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动.尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟.稳定.不过现在也面临着一个严酷的事实:技术越来越成熟--以至于原来很好的NoSQL数据存储不得不进行重写,也有少数人认为这就是所谓的2.0版本.这里列出一些比较知名的工具,可以为大数据建立快速.可扩展的存储库. 1. Casssandra Cassandra最初由Facebook开发,后来成了Apache开源项目,它是一个网络社交云计算方面理

SQL VS NoSQL

(关系型与非关系型)数据库的区别: 关系型和非关系型数据库的主要差异是数据存储的方式 1.1 数据表 VS 数据集 关系型数据天然就是表格式的,因此存储在数据表的行和列中.数据表可以彼此关联协作存储,也很容易提取数据.与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起.非关系型数据通常存储在数据集中,就像文档.键值对或者图结构 1.2 预定义结构 VS 动态结构 关系型数据通常对应于结构化数据,因为数据表都有预定义好的结构(列的定义),结构描述了数据的形式和内容.这一点对数据

为什么会出现NoSql数据库

NoSQL即Not-Only SQL是关系型数据库的良好补充 关系型数据库是基于关系模型提出来的数据库.那么什么是关系模型呢?以行和列的方式二维表的方式存储数据的模型就是关系型数据库.例如:mysql和oracle 随着互联网web网站的兴起,关系型数据库暴露的缺点越来越多,关系型数据库可以应付上万次的sql查询,但是对于上万次的sql写数据的请求,硬盘io就受不鸟了 下面小编来说说硬盘和内存条有什么区别(内存条又称内存) 硬盘:用来存储数据的计算机配件.是非易失性储存器,说得直白点,就是你关了

3大主流NoSQL数据库性能对比测试报告

近日,知名独立基准测评机构Bankmark,针对目前市面上主流的NoSQL数据库SequoiaDB.MongoDB以及Cassandra三款NoSQL数据库产品做了性能对比测试并发布测试报告.在所有的测试中,三款NoSQL数据库产品的表现各有千秋,没有那款产品能在所有测试场景中完败对手,就整体表现而言SequoiaDB与Cassandra不相上下表现上佳,而MongoDB表现却不理想属于垫底的存在. 测试机构: Bankmark是一家德国的独立基准测评机构,业内著名的NoSQL性能测试团队. 测

关系数据库&&NoSQL数据库

在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发.因为成熟稳定的关系数据库产品并不是很多,而供你选择的免费版本就更加少了,所以互联网领域基本上都选择了免费的MySQL数据库.在高速发展的WEB2.0时代,我们发现关系数据库在性能.扩展性.数据的快速备份和恢复.满足需求的易用性上并不总是能很好的满足我们的需要,我们越来越趋向于根据业务场景选择合适的数据库,以及进行多种数据库的融合运用. 当我们在讨论是否要使用NoSQL的时候,你还需要理解NoSQL也是分很多种类的,在No

Nosql里典型的数据库

Nosql里典型的数据库 Redis 对网站服务器进行写入 传统关系式数据库无法过多的写入 对数据库要求: 数据库高并发读写需求 解决方案: (1:读写分离 两台主如果同时写入会发生冲突 (2:水平分割: 关系式数据库 数据之间有操作 海量数据的高效率存储和访问的需求 用户如果在海量数据中查询某一条数据 记录 数据库的高扩展性和高可用性 ############################################### 任何一个领域,如果不能通过自己的努力 去获取或者超出其他人的竞争