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天生的集群特性,一旦搭建起来,就不单单是“缓存服务器”了,而是“分布式缓存”!!让你的平台分分钟变得“高大上”!













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值