Posted on 2011-03-08 07:32
lipan 閱讀(42912) 評論(28)
編輯
收藏
1、前言
最近開始學習非關係型數據庫MongoDB,卻在博客園上找不到比較系統的教程,不少資料都要去查閱英文網站,效率比較低下。本人不才,藉着自學的機會把心得體會都記錄下來,方便感興趣的童鞋分享討論。部分資源出自其餘博客,旨將零散知識點集中到一塊兒,若是有侵犯您的權利,請聯繫li-pan2@163.com。大部份內容均系原創,歡迎你們轉載分享,但轉載的同時別忘了註明做者和原文連接哦。html
2、MongoDB簡介
MongoDB是一個高性能,開源,無模式的文檔型數據庫,是當前NoSql數據庫中比較熱門的一種。它在許多場景下可用於替代傳統的關係型數據庫或鍵/值存儲方式。Mongo使用C++開發。Mongo的官方網站地址是:http://www.mongodb.org/,讀者能夠在此得到更詳細的信息。程序員
小插曲:什麼是NoSql?web
NoSql,全稱是 Not Only Sql,指的是非關係型的數據庫。下一代數據庫主要解決幾個要點:非關係型的、分佈式的、開源的、水平可擴展的。原始的目的是爲了大規模web應用,這場運動開始於2009年初,一般特性應用如:模式自由、支持簡易複製、簡單的API、最終的一致性(非ACID)、大容量數據等。NoSQL被咱們用得最多的當數key-value存儲,固然還有其餘的文檔型的、列存儲、圖型數據庫、xml數據庫等。mongodb
特色:數據庫
高性能、易部署、易使用,存儲數據很是方便。主要功能特性有:數組
- 面向集合存儲,易存儲對象類型的數據。
- 模式自由。
- 支持動態查詢。
- 支持徹底索引,包含內部對象。
- 支持查詢。
- 支持複製和故障恢復。
- 使用高效的二進制數據存儲,包括大型對象(如視頻等)。
- 自動處理碎片,以支持雲計算層次的擴展性
- 支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++語言的驅動程序,社區中也提供了對Erlang及.NET等平臺的驅動程序。
- 文件存儲格式爲BSON(一種JSON的擴展)。
- 可經過網絡訪問。
功能:瀏覽器
- 面向集合的存儲:適合存儲對象及JSON形式的數據。
- 動態查詢:Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
- 完整的索引支持:包括文檔內嵌對象及數組。Mongo的查詢優化器會分析查詢表達式,並生成一個高效的查詢計劃。
- 查詢監視:Mongo包含一個監視工具用於分析數據庫操做的性能。
- 複製及自動故障轉移:Mongo數據庫支持服務器之間的數據複製,支持主-從模式及服務器之間的相互複製。複製的主要目標是提供冗餘及自動故障轉移。
- 高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)
- 自動分片以支持雲級別的伸縮性:自動分片功能支持水平的數據庫集羣,可動態添加額外的機器。
適用場合:緩存
- 網站數據:Mongo很是適合實時的插入,更新與查詢,並具有網站實時數據存儲所需的複製及高度伸縮性。
- 緩存:因爲性能很高,Mongo也適合做爲信息基礎設施的緩存層。在系統重啓以後,由Mongo搭建的持久化緩存層能夠避免下層的數據源 過載。
- 大尺寸,低價值的數據:使用傳統的關係型數據庫存儲一些數據時可能會比較昂貴,在此以前,不少時候程序員每每會選擇傳統的文件進行存儲。
- 高伸縮性的場景:Mongo很是適合由數十或數百臺服務器組成的數據庫。Mongo的路線圖中已經包含對MapReduce引擎的內置支持。
- 用於對象及JSON數據的存儲:Mongo的BSON數據格式很是適合文檔化格式的存儲及查詢。
3、下載安裝和配置
安裝Mongo數據庫:服務器
在發佈本文的時間官方提供的最新版本是:1.6.5 ,若是不作特殊聲明,本教程所用的版本將會是這個版本。網絡
- 第一步:下載安裝包:官方下載地址←單擊此處,若是是win系統,注意是64位仍是32位版本的,請選擇正確的版本。
- 第二步:新建目錄「D:\MongoDB」,解壓下載到的安裝包,找到bin目錄下面所有.exe文件,拷貝到剛建立的目錄下。
- 第三步:在「D:\MongoDB」目錄下新建「data」文件夾,它將會做爲數據存放的根文件夾。
配置Mongo服務端:
打開CMD窗口,按照以下方式輸入命令:
> d:
> cd D:\MongoDB
> mongod --dbpath D:\MongoDB\data
配置成功後會看到以下畫面:
![](http://static.javashuo.com/static/loading.gif)
在瀏覽器輸入:http://localhost:27017/,能夠看到以下提示:
You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
如此,MongoDB數據庫服務已經成功啓動了。
4、後記
如今咱們已經初步實現了MongoDB的安裝和服務的啓動工做。後面咱們還有不少的工做,要使MongoDB能在咱們的C#代碼中被操做,還須要驅動,常常有朋友在網上copy代碼後發現編譯不經過,那估計是驅動不一致的問題了,下篇文章會詳細講解,未完待續。。