從可查詢的分布式解決方案,如MongoDB,到簡單的分布式Key/Value存儲解決方案,如 Cassandra。此外,還有Riak,Tokyo Cabinet,Voldemort,CouchDB和Redis。但目前僅有少量的NoSQL項(xiàng)目支持在Windows平臺上運(yùn)行,如果要說到生產(chǎn)應(yīng)用 那就更少了。
Memcached
Memcached傳統(tǒng)上認(rèn)為它不屬于NoSQL的范疇,而是一個分布式Key/Value內(nèi)存緩存解決方案,它可以用來存儲各種各樣的臨時數(shù)據(jù)集,存儲方式和其它NoSQL數(shù)據(jù)庫解決方案沒有什么差別。
NorthScale提供了適合于32位和64位Windows平臺的Memcached程序包,可從這里免費(fèi)下載。
MongoDB
MongoDB是一個基于文檔(JSON風(fēng)格)的數(shù)據(jù)存儲引擎,通過它的自動分片功能可實(shí)現(xiàn)良好的水平 擴(kuò)展能力,它使用了一個簡單但功能很強(qiáng)大的基于JavaScript/JSON的查詢語言,提供了快速插入和更新能力,主要?dú)w功于它的低開銷原子修改程 序。此外,使用Map/Reduce實(shí)現(xiàn)了跨多個MongoDB數(shù)據(jù)庫聚合和數(shù)據(jù)處理。
MongoDB背后的10Gen公司前不久正式宣布了對Windows平臺的支持。MongoDB目前的最新版本是1.6.0,許多大型Web站點(diǎn)現(xiàn)在都在使用它。關(guān)于MongoDB Windows版本的更多信息請移步這里,對應(yīng)的版本可從這里下載。
sones GraphDB
sones GraphDB是一個企業(yè)圖形數(shù)據(jù)存儲引擎,它使用C#語言開發(fā),并且是開源的,對于非商業(yè)目的可以免費(fèi)下載,但如果用于商業(yè)目的則需要購買商業(yè)許可。
圖形數(shù)據(jù)庫和我們常說的NoSQL數(shù)據(jù)庫存儲方式是不同的,它們更善于處理一類特定的問題:數(shù)據(jù)集包含了大量的關(guān)系,需要快速高效地遍歷這些關(guān)系。
圖形數(shù)據(jù)庫一個常見的用例就是用來存儲社交關(guān)系或社交圖,通常,這些社交圖由許多節(jié)點(diǎn)組成,節(jié)點(diǎn)之間存在許多獨(dú)立的關(guān)系,這是傳統(tǒng)關(guān)系數(shù)據(jù)庫很難處理好的問題域。如果你對sones GraphDB感興趣,可從這里下載它的源代碼,更多信息請?jiān)L問該項(xiàng)目的官方網(wǎng)站。
Voldemort
Voldemort是一個分布式Key/Value存儲系統(tǒng),LinkedIn用它解決了網(wǎng)站的高擴(kuò)展 性存儲問題,簡單的分區(qū)功能已經(jīng)不能滿足LinkedIn的需要。Voldemort使用Java編寫,因此借助Java的跨平臺特性,它也可以運(yùn)行在 Windows平臺上。請閱讀這篇文章了解如何在Windows平臺上安裝Voldemort。
NoSQL項(xiàng)目機(jī)會
對于Microsoft世界來說這是一個激動人心的時刻,但目前Microsoft陣營采用NoSQL的節(jié)奏還非常慢,因?qū)C(jī)會也比較多,如果能開發(fā)出優(yōu)秀的NoSQL托管存儲解決方案,一定會很受歡迎。
ESENT分布式數(shù)據(jù)存儲
關(guān)于ESENT,我能想到最恰當(dāng)?shù)谋扔魇牵荕icrosoft世界的BerkeleyDB,鮮為人知,很少有.NET開發(fā)人員使用它,但它的性能和可靠性已經(jīng)經(jīng)受住了時間的考驗(yàn)。
ESENT是一個原生支持Windows的嵌入式數(shù)據(jù)庫引擎,它是CodePlex上的一個托管項(xiàng)目,最新的Windows版本已經(jīng)內(nèi)置了esent.dll。
我做了一些測試,它的速度真是太快了,每秒可以執(zhí)行大約10萬次插入操作,夠變態(tài)吧。關(guān)于性能的更多統(tǒng)計數(shù)字請看這里。
內(nèi)存字典式分布式數(shù)據(jù)存儲
內(nèi)存字典式分布式數(shù)據(jù)存儲和ESENT有點(diǎn)類似,但不同的是它的數(shù)據(jù)完全存儲在內(nèi)存中。他可以作為分布 式緩存的基礎(chǔ),也可以跨一系列節(jié)點(diǎn)復(fù)制數(shù)據(jù)而實(shí)現(xiàn)持久化,任何時間只要有一個節(jié)點(diǎn)可用,數(shù)據(jù)都是可以訪問的,Amazon或其它基于云的非持久化服務(wù)器解 決方案可以完美地實(shí)現(xiàn)托管,我是這種解決方案的堅(jiān)決支持者。
最后的想法
對.NET開發(fā)人員來說,使用NoSQL解決方案目前還有一些限制,但隨時間的推移,肯定會有越來越多的NoSQL解決方案可供選擇,作為一名.NET開發(fā)人員,我們也應(yīng)該參與到這些項(xiàng)目中去,以期早日解決現(xiàn)在存在的問題,這也是.NET開發(fā)人員的一次難得的機(jī)會。