NoSQL資料庫盤點

weakish發表於2014-01-22

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

相關文章