初识NoSQL

前端之家收集整理的这篇文章主要介绍了初识NoSQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

开始之前,因为最近在做一个项目,其中用到了redis,正所谓不谋万世者,不足谋一时,不谋全局者,不足谋一域,我们先介绍一下Nosql,从宏观上把控非关系型数据库的特点,再详细去研究redis,相信这样的学习的效率也是非常高的。

废话不多说,我们先来介绍下Nosql

概念

Nosql(Nosql=NotOnly sql),意即“不仅仅是sql”。

随着web2.0的快速发展,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的社会性网络服务类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型、分布式数据存储则由于其本身的特点得到了快速的发展,它们不保证关系数据的ACID特性。

Nosql概念在2009年被提了出来。Nosql最常见的解释是“non-relational”,“Not Onlysql”也被很多人接受。在不到一年的时间,Nosql就开始风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了Nosql技术作为优先考虑的方面。

Nosql一词最早出现于1998年,是CarloStrozzi开发的一个轻量级、开源的、不提供sql功能的关系数据库。直到2009年Nosql再次被提出,Nosql的概念发生了天翻地覆的改变,就像它的名字一样,不提供sql功能的非关系型数据库。我们知道了Nosql的产生背景,但是为什么它得到了快速发展?

传统关系数据库的瓶颈

传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。在互联网领域,MysqL成为了绝对靠前的王者,毫不夸张的说,MysqL为互联网的发展做出了卓越的贡献。

在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。

到了最近10年,网站开始快速发展。火爆的论坛、博客、sns、微博逐渐引领web领域的潮流。在初期,论坛的流量其实也不大,如果你接触网络比较早,你可能还记得那个时候还有文本型存储的论坛程序,可以想象一般的论坛的流量有多大。

sql语言和关系型数据库MysqL、Postgresql、Oracle等)是通用的数据解决方案,占有绝大多数的市场。不过在最近兴起的Nosql运动中,涌现出一批具备高可用性、支持线性扩展、支持Map/Reduce操作等特性的数据产品,它们具有如下特性:

优点:

1.事务处理---保持数据的一致性;

2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上只有一处);

3.可以进行Join等复杂查询

缺点:

1.频繁的写入操作、相对较少的读取统计信息的操作(如网站访问计数器),应该使用基于内存的Key/Value(键/值)存储系统(如Redis)或者是具备本地更新特性的文档存储系统(如MongoDB)。

2.海量数据(如数据仓库中需要分析的数据)适合存储在一个结构松散、分布式的文件存储系统中,如Hadoop。

3.存储二进制文件(如mp3或者pdf文档)并且能够直接为用户的浏览器提供下载功能,可以使用Amazon S3。

4.临时性的数据(如网站的session、缓存HTML页面信息等)适合存储在Memcache中。

NOsql的优势

易扩展

Nosql数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

大数据量,高性能

Nosql数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。

一般MysqL使用 Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而Nosql的 Cache是记录级的,是一种细粒度的Cache,所以Nosql在这个层面上来说就要性能高很多了。

灵活的数据模型

Nosql无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。

高可用

Nosql在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。

总结

当然有优点也有缺点,只不过Nosql数据库的出现,弥补了关系数据(比如MysqL)在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。

MysqL和Nosql都有各自的特点和使用的应用场景,两者的紧密结合将会给web2.0的数据库发展带来新的思路。让关系数据库关注在关系上,Nosql关注在存储上。

所以,我们的核心思想是:合适的就是最好的。

原文链接:https://www.f2er.com/nosql/203664.html

猜你在找的NoSQL相关文章