常见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提供了大规模可扩展性,在一台机器上可以处理大量节点/关系/属性的图,可以扩展到多台机器并行运行。