MongoDB,現在開源社區里越來越受到關注的一個NoSQL產品,按照官方的說法,是一個可擴展的、高性能的、開源的、面向文檔的數據庫。Craigslist、foursquare、國內的淘寶網等知名互聯網公司都有在他們的生產環境部署了MongoDB。
一、MongoDB簡介
mongodb是用C++開發的面向文檔的數據庫,也就是反傳統的數據庫范式來設計的,把相關的對象都記錄到一個文檔里,每個文檔內是schema-free的,也就是列名可以自由定義,比較靈活,特別是面對業務邏輯多變的應用場景十分給力。數據以BSON(類似JSON)的格式二進制存儲。不好的地方就是可能帶來一定的數據冗余和存儲開銷。
很明顯,MongoDB這種面向文檔的數據庫和傳統的關系型數據庫的設計思路是差別很大的,因為每個文檔都包含了所有信息,和其他文檔是沒有關聯的,這樣傳統的Join操作就完全沒必要了,也正是因為去除了這種“關系”,使得MongoDB的水平拆分更加容易,這也是面對海量數據的一個很好的處理思路。另外,MongoDB的索引機制和MySQL等數據庫是一樣的,可以利用傳統的關系型數據庫的經驗來使用MongoDB的索引。
不像其他很多NoSQL產品由個別工程師根據應用場景開發出來,MongoDB是有一個專門的公司10gen來維護。有一點要注意的是,MongoDB自己是不管理內存的,無法指定內存大小,完全交給操作系統來管理,因此有時候是不可控的,在生產環境使用必須在OS層面監控內存使用情況。
二、MongoDB安裝
MongoDB的源碼安裝用了很多第三方的東西,比如JS引擎(目前官方推薦的是mozilla的Spider Monkey,以后可能改成google的V8,和node.js一樣,呵呵)、正則表達式引擎(pcre)、安裝構建工具scons(這東西還要用python來安裝)、boost C++庫等等。下面是安裝過程:
1、下載需要的源文件和相關軟件包
下面是下載地址:(選擇適合自己的版本)
Spider Monkey:http://ftp.mozilla.org/pub/mozilla.org/js/
Pcre:http://sourceforge.net/projects/pcre/files/pcre/
Scons:http://www.scons.org/download.php
Boost:http://www.boost.org/users/history/
Mongodb:http://www.mongodb.org/downloads(這里注意下載源碼,而不是對應的操作系統,本人就是由於下載了linux 64位的導致后面安裝一直沒有成功,耗了一天時間才找到原來包下錯了)
2、安裝Spider Monkey(*為軟件包的版本號)
# tar -zxvf js-*.*.*.tar.gz
# cd js/src
# export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
# make -f Makefile.ref
# JS_DIST=/usr make -f Makefile.ref export
3、安裝pcre
# tar -zxvf pcre-*.*.tar.gz
# cd pcre-*.*
# ./configure
# make
# make install
4、安裝scons
#tar -zxvf scons-*.*.*.tar.gz
# cd scons-*.*.*
# python setup.py install
5、安裝boost
#tar -zxvf boost_*.*.*.tar.gz
#cd boost_*_*_*
#./bootstrap.sh
#./bjam install
#./bjam stage
#./bjam –without-python –layout=tagged variant=debug,release link=static,shared runtime-link=shared threading=multi stage
之前安裝boost時不知道為什么我通過源碼編譯安裝boost一直不成功,搞了一天時間仍不行,最后沒有辦法在新立得下安裝的:
搜索libboost,將符合的軟件包標記安裝,有同樣經歷的可以試試。
6、安裝mongodb
#tar -zxvf mongodb-src-x*_*-*.*.*.tar.gz
# cd mongodb-src-x*_*-*.*.*
# scons all
# scons --prefix=/usr/local/mongodb --full install
7、配置mongodb
創建/data/db文件夾作為數據庫文件存放目錄
#mkdir -p /data/db
確保用戶對文件夾有寫權限
#chown -R $user:$user /data/db ($user為你的用戶名)
為了方便,設置環境變量,修改profile文件
#vim /etc/profile
在文件最后一行加入:
export PATH="$PATH:/usr/local/mongodb/bin"
8、啟動mongodb
$mongodb
最后推薦大家一部學習資料:
http://ishare.iask.sina.com.cn/f/21130192.html