在許多情況下,使用SQL數據庫用於存儲/檢索數據就足夠了。但在另一些情況下,要麼SQL數據庫規模不夠,要麼還有更好的工具。這一切都取決於使用情況。
現在讓我們來討論一下存儲/處理數據用的不同的非SQL工具——NoSQL數據庫,內存緩存,全文搜索引擎,實時流,圖形數據庫,等等。
MongoDB
一種流行的,跨平臺的面向文檔的數據庫。
Elasticsearch
專爲雲而構建的分佈式REST風格搜索引擎。
Cassandra
一個開源的分佈式數據庫管理系統,最初由臉譜網開發,被設計用來處理橫跨多個商用服務器的大量數據,提供了無單點故障的高度可用性。
Redis
一個開源的(BSD許可),內存數據結構存儲,作爲數據庫、緩存和消息代理使用。
Hazelcast
基於Java的開源內存數據網格。
EHCache
一種被廣泛使用的開源Java分佈式緩存,用於通用緩存、Java EE和輕量級容器。
Hadoop
用Java編寫的.一個開源軟件框架,用於分佈式存儲和對在計算機集羣上的超大型數據集的分佈式處理。
Solr
一個開源的企業搜索平臺,用Java編寫的,來自於Apache Lucene項目。
Spark
Apache Software Foundation中最活躍的項目,一個開源的集羣計算框架。
Memcached
一個通用的分佈式內存緩存系統。
Apache Hive
提供了Hadoop之上類似於SQL的層。
Apache Kafka
一個高通量、分佈式的發佈-訂閱式消息系統,最初開發在LinkedIn上。Windows上脫離Cygwin運行Apache Kafka。
Akka
一個工具包和運行時,用於在JVM上構建高度並行的、分佈式的、有彈性的消息驅動的應用程序。
HBase
一個開源的,非關係型的,分佈式數據庫,在谷歌的BigTable後建模,用Java編寫,並運行在HDFS上。
Neo4j
用Java實現的開源圖形數據庫。
CouchBase
一個開源的、面向文檔的分佈式NoSQL數據庫,特別爲了交互式應用而優化。
Apache Storm
開源的分佈式實時計算系統。
CouchDB
使用JSON來存儲數據的面向文檔的開源NoSQL數據庫。
Oracle Coherence
一個內存的數據網格解決方案,通過提供快速訪問常用數據的渠道,使得企業可預測地擴展關鍵任務應用程序。
Titan
一個可擴展的圖形數據庫,優化的目的在於存儲和查詢包含數千億頂點和邊的圖形,分佈在多機集羣。
Amazon DynamoDB
一個快速、靈活、完全管理的NoSQL數據庫服務,用於在任何規模需要一致的、個位數毫秒延遲的所有應用程序。
Amazon Kinesis
用於在AWS上的流數據的實時平臺。
Datomic
一個用Clojure寫的完全事務式的,支持雲的,分佈式數據庫。