參考文章:
ArangoDB原生多模型數據庫(百科)
SQL/AQL-比較(官網)
簡介:
ArangoDB是一個開源NoSQL數據庫,官網:https://www.ArangoDB.org/.
ArangoDB支持靈活的數據模型,比如文檔Document、圖Graph以及鍵值對Key-Value存儲。ArangoDB同時也是一個高性能的數據庫,它使用類SQL查詢或JavaScript擴展來構建高性能應用。
ArangoDB的特性
1)多模型數據庫
可以靈活的使用鍵值對、文檔、圖及其組合構建你的數據模型。
2)查詢便利
ArangoDB有類SQL的AQL查詢語言,還可以通過REST方式進行查詢。
3)可通過JavaScript進行擴展
無語言范圍的限制,可以從前端到后端都使用同一種語言。
4)高性能
ArangoDB速度極快
5)Foxx - 構建自己的API
用JavaScript和ArangoDB構建應用,Foxx運行在DB內部,可快速訪問數據。
6)空間利用率高
跟其它文檔型數據庫相比,ArangoDB占用的存儲空間更少,因為ArangoDB是模式自由的元數據模式。
7)簡單易用
ArangoDB可以在幾秒內啟動運行,同時可使用圖形界面來管理你的ArangoDB。
8)多OS支持
ArangoDB支持Windows、Linux和OSX等操作系統,還支持樹莓派。
9)開源且免費
ArangoDB開源免費,它采用了Apache 2許可證協議。
10)復制
ArangoDB支持主從集群
ArangoDB 數據庫模型
Document 文檔
您可以在文檔中存儲海量數據(文件大小默認最大值為32MB,但可以根據實際需要進行配置)。ArangoDB功能強大,應用范圍廣泛,可用於查詢和處理諸如JOINs、輔助索引或ACID事物之類的文檔。您還可以在JOIN連接上實現水平擴展。
key/value 鍵/值
每個document文檔里均有唯一的鍵和與其對應的值(鍵/值對)。如果您在document文件中存儲一個值,那么ArangoDB可用作經典的、高度可擴展的鍵/值對存儲,例如用戶在電子商務平台上將商品臨時存儲在購物車里或物聯網應用程序中的傳感數據等。
Graph 圖
ArangoDB包含了graph圖形存儲的完整功能集。例如模式匹配、最短路徑、完全遍歷等。與當前許多主流的圖形處理方法相比,ArangoDB可以快速執行圖形查詢。以下具體介紹如何實現這一改進:
當使用ArangoDB存儲graph圖時,一種特殊類型的文檔將會被創建用來表示其邊和頂點。這些文檔包含指向所連接文檔的_to和_from屬性(地址屬性),因此在查詢過程中,可以通過關聯上述屬性創建和使用邊緣索引,實現圖的高性能處理和查詢。
ArangoDB數據庫的獨特之處在於如下兩個方面:其一是這些邊和頂點都包含復雜數據(嵌套屬性),其二是所有的graph函數均被深入集成至我們的查詢語言AQL中。這兩個特征使得ArangoDB在性能上能與其他graph數據庫一較高低。此外,ArangoDB還支持對graph圖搭建數據庫集群。 [3]
python庫
另外大家可以學習下python的aerospike庫。
# import the module import aerospike # Configuration for the client config = { 'hosts': [('127.0.0.1', 3000)] } # Create a client and connect to the database client = aerospike.client(config).connect() # Records are addressable via a tuple of (namespace, set, key) key = ('test', 'demo', 'foo') # Write a record client.put(key, { 'name': 'John Doe', 'age': 32 }) # Read a record (key, metadata, record) = client.get(key) # Close Connection to Cluster client.close()
性能比較
見 NoSQL 基准對比 Aerospike、Cassandra、Couchbase 和 MongoDB
整體看來 如果是充分利用內存提速的話 要比mongodb好!