NoSQL简单介绍

这里介绍一下现在常常使用的NoSQL以及各自的特色。javascript

NoSQL是2009年忽然发展起来的。现在趋于稳定的状态,市场上也有了一些比較成熟的产品。java

传统的关系型数据库为了保证通用性的设计而带来了功能复杂、性能开销大、价格昂贵等问题,在NoSQL中都或多或少的获得了解决。NoSQL避免了一些不需要的复杂性,有更高的吞吐量。具备高并发的特色。也具有在商用硬件上的水平拓展能力。web

不只如此,NoSQL也实现了大表的本身主动切割功能,可以更好的支持分布式处理,在性能和可靠性之间折中,这是知足现在云计算中提到的从中心模式到分布模式的需求的。这也是NoSQL这几年特别火热的缘由。redis

如下介绍一下现在流行的NoSQL各自的特色:算法


memcached

第一个NoSQL数据库,其本质是一个存储键值对的hashmap,是一个高性能的分布式内存缓存server,用于动态web应用以减轻数据库负载。mongodb

client经过memcached协议与守护进程通讯。但是缺少认证以及安全管制,是一个内存存储方式的不互相通讯的分布式数据库。数据库


redis

也是一个键值对存储的数据库,和memcached类型,但是相比memcached而言,redis的数据是也是存储在内存中的,也有硬盘存储支持的内存数据库。也就是说,不会由于server从新启动而丢失数据。其value数据类型丰富,查询速度也很是快。而且赞成用户实现消息机制。api


neo4j

一款基于关系的图形数据库,数据都是节点。数据之间的关系都是依靠边来表示的。使用HTTP REST协议,可独立使用或者嵌入到java程序中。使用多种算法支持路径搜索,使用键值和关系进行索引。缓存

其对读操做进行了优化, 查询速度比关系型数据库快多了,很是重要的一点是,它可以经过对java api的使用来支持事务。安全

neo4j的企业版还支持在线备份,具备高级监控和高可靠性。


Cassandra

一款由Facebook开源的使用java语言的混合型非关系数据库。类似于Google的bigle。
该数据库的写操做比读操做更快。基于column的结构化,具备高拓展性。


hbase

该数据库是Google公司bigle的开源实现。是一款分布式的。面向列的开源数据库。利用hadoop hdfs做为其文件存储系统,利用hadoop mapreduce来处理海量数据。採用了分布式架构map reduce。


mongoDB

mongoDB可以说是现在NoSQL的领头羊。它的社区活跃,文档丰富,有10gen商业支持。持续性有保障。

mongoDB是由C++编写的,它很是特别的是保留了一些SQL的友好特性,比方查询和索引。它支持javascript表达式查询,可以在server端运行随意的javascript函数。因此其查询功能不输于关系型数据库。

该数据库在数据存储时採用内存到文件映射的方式,对性能的关注超过对功能的需求,而且其内置分片机制,下降了需哟手动分片的繁琐。

很是多NoSQL都是读快写慢,有的是读慢写快。而mongoDB读写性能很是均衡,都很是快。

 
 
1
0
相关文章
相关标签/搜索