常见NoSQL数据库NoSQL,泛指非关系型的数据库。常见的NoSQL数据库有:Cassandra、 Mongodb、CouchDB、Redis、 Riak、 Membase、Neo4j和HBase等等,我们在数据库的应用中,应该根据系统业务的需求,选择合适的NoSQL数据库

常见NoSQL数据库

一、MongoDb

1、MongoDB是一个基于分布式文件存储的数据库。

2、数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构

3、支持二进制数据及大型对象(如照片或图片)

4、Mongo 非常适合实时的插入数据。

5、用于对象及JSON 数据的存储:Mongo 的BSON 数据格式非常适合文档化格式的存储及查询。

6、内置GridFS,支持大容量的存储

7、内置Sharding,分片简单

8、MongoDB的复副集(Master-Slave)配置非常简洁方便,此外,MongoDB可以快速响应的处理单节点故障,自动、安全的完成故障转移。

二、Redis

1、Redis是一个基于键值(key-value)存储的数据库。

2、和Memcached类似,提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

3、Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。

4、支持的数据类型:字符串、哈希、列表、集合、有序集合等 。

5、为了获得优异的性能,redis采用内存中数据集的方式。

6、Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

7、作为一个内存数据库,最担心的,就是万一机器死机,数据会消失掉。redi使用rdb和aof做数据的持久化存储。主从数据同时,生成rdb文件,并利用缓冲区添加新的数据更新操作做对应的同步。

8、可用于缓存,消息,按key设置过期时间,过期后将会自动删除。

三、Hbase

1、HBase是一个分布式的、面向列的开源数据库。

2、列可以动态增加,并且列为空就不存储数据,节省存储空间。

3、Hbase只有简单的字符类型,所有的类型都是交由用户自己处理,它只保存字符串。

4、以列簇式存储,将同一列数据存储在一起。

5、hbase每个列族都有几个文件保存,不同列族的文件是分离的。

6、非常适合使用Hbase存储的数据是非常稀疏的数据(非结构化或者半结构化的数据)。

7、与hadoop一样,Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

8、面向列(族)的存储和权限控制,列(族)独立检索。

四、Neo4J

1、Neo4j是一个图形数据库,数据并非保存在表或集合中,而是保存为节点以及节点之间的关系。

2、支持兼容ACID的事务操作

3、Neo4j提供了大规模可扩展性,在一台机器上可以处理大量节点/关系/属性的图,可以扩展到多台机器并行运行。

标签: