2011-06-28 25 views
29

我正在進入Node.js,我很享受它。我正在更多地進入Web應用程序開發。CouchDB,MongoDB和Redis中的哪個數據庫適合從Node.js開始?

我已經繞過Node.js,目前使用Backbone作爲前端。我正在製作一些使用Backbone的應用程序,使用RESTful API與服務器進行通信。在Node.js中,我將使用Express框架。

我到了一個地方,我需要一個簡單的數據庫在服務器上。我習慣了PostgreSQLMySQLDjango,但我在這裏需要的是一些簡單的數據存儲等。我知道關於CouchDB,MongoDBRedis,但我只是不知道哪一個使用?

它們中的任何一個更適合Node.js?對於初學者來說,它們中的任何一個對關係數據庫有好處?我只是需要一些指導選擇,我已經走到了這麼遠,但是當它來到這些類型的數據庫,我只是不知道...

+0

對我來說,問題是[貓鼬](http://mongoosejs.com/)vs [搖籃](http://cloudhead.io/cradle) – Raynos

+0

@Raynos謝謝你,不知道關於搖籃。我想每個人和他們的狗都使用這些數據庫抽象與節點JS,而不是直接與數據庫的記錄API通信? – littlejim84

+0

我發現直接與數據庫進行通信的問題很容易陷入回調地獄。在做任何事情之前,您通常會深入嵌入4級回調。 API簡直不夠優雅,您應該使用現有的抽象或編寫自己的抽象。 – Raynos

回答

56

是他們中的任何一個更好適用於 Node JS?

更適合特別是node.js,可能不是,但它們中的每一個都更適合基於您的應用程序需求或使用案例的特定場景。

Redis是一款先進的鍵值存儲器,可能是三種NoSQL解決方案中最快的一種。除了basic key數據操作,它支持豐富的數據結構,如lists,sets,hashespub/sub功能,這可以非常方便,即在統計或其他實時瘋狂。但是它缺乏某種查詢語言。

CouchDB的是面向文檔存儲,這是非常耐用,提供MVCC,REST接口,極大replication系統和map-reduce查詢。它可以用於廣泛的場景並替代RDBMS,但是如果您習慣於臨時SQL查詢,那麼您可能會遇到與map-reduce視圖有關的某些問題。

MongoDB的也面向文檔的儲存喜歡的CouchDB和支持即席查詢,除了地圖,減少其可能的重要功能,爲什麼人們尋找替代DRBMS MongoDB的選擇比其他的NoSQL解決方案之一。

是更好地爲 初學者它們中的任何一個,從關係型數據庫 移動?

既然你是從RDBMS世界來了,你可能使用SQL的話,我想,你應該用MongoDB的去,因爲,不同的Redis或CouchDB的,它支持即席查詢和查詢機制是相似到SQL。不過,根據您的應用場景,可能會有些區域可能更適合Redis或CouchDB的工作。

+0

謝謝。這是一個非常好的答案。我正在四處搜尋每個人的簡明,真實的使用場景,並且您將它們總結得很好,供我消化。謝謝。 – littlejim84

+1

提及沙發暴露在REST上! CMON! – Raynos

+0

@Raynos:你走了。 – yojimbo87

相關問題