4

Michael Stonebraker是数据库领域的布道者。他对此领域了解很深,并帮助开发了一些最流行的数据库系统,包括Postgres、Ingres和Vertica。StoneBraker近来提出NoSQL会被广泛接受

NoSQL通常具有如下优势:

  • 性能、扩展性更好
  • 无模式或模式灵活
  • 无共享架构
  • 异步

本文罗列了一些知名的NoSQL数据库,希望能帮助开发者更好地选用NoSQL数据库。

文档、键值类数据库

  • MongoDB:开源、面向文档,目前使用最广泛。
  • CounchDB:Apache旗下,基于Erlang的文档数据库。也非常流行,npm即使用CouchDB。
  • Couchbase:原名Membase,专注于交互类应用。
  • Riak:分布式键值数据库,支持数据复制和容错。
  • Redis:键值存储。支持主从式复制、事务、Pub/Sub、Lua脚本,常用于
  • Dynamo:Amazonn S3中使用。
  • Oracle NoSQL Database: Oracle旗下,支持事务ACID和JSON。
  • Aerospike:支持混合内存架构,通过强一致性和可调一致性保证数据的完整性。
  • Voldemort 支持备份的键值存储。
  • RavenDB: 基于.Net平台。兼容DDD.
  • MarkLogic 基于XML的存储架构。

大文件存储数据库

  • Cassandra:同样是Apache旗下。分布式、容错、弹性。
  • HBase:Google的Bigtable的开源实现,基于Hadoop和HDFS。
  • Apache Accumulo:Apache旗下又一款数据库。同样参考Google的BigTable设计,基于Apache Hadoop、Zookeeper和Thrift。
  • Hypertable:另一个Bigtable实现,支持分片。
  • Amazon SimpleDB:Amazon旗下。可以在AWS中使用。
  • Azure Tables:MicroSoft旗下。可以通过Windows Azure云服务使用。

Graph数据库

  • Neo4j:基于Java,支持ACID,可嵌入。
  • InfiniteGraph:优势在于遍历对象间的复杂关系,支持分布式数据存储。
  • AllegroGraph:基于内存,十分高效,并结合了磁盘存储,提供了高可扩展性,支持SPARQ、RDFS++和Prolog。
  • OrientDB: 基于Java编写,其实也可以算作文档型数据库,但是记录之间的关系管理采用graph数据库的方式。支持全模式、混合模式和无模式。
  • FlockDB: 开源、分布式,适合广而浅的网络。最初Twitter使用这个存储用户间的关系。和其他graph数据库不同,设计时针对的不是遍历,而是快速的集合操作。

编撰 SegmentFault


weakish
24.6k 声望844 粉丝

a vigorously lazy deadbeat with matured immaturity