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