深入理解MongoDB(一)Linux下配置MongoDB全攻略
一 MongoDB簡介
MongoDB是一個高效能,開源,無模式的文件型資料庫,是當前NoSql資料庫中比較熱門的一種。它在許多場景下可用於替代傳統的關係型資料庫或鍵/值儲存方式,Mongo使用C++開發。Mongo的官方網站地址是:http://www.mongodb.org/,讀者可以在此獲得更詳細的資訊。
特點:
它的特點是高效能、易部署、易使用,儲存資料非常方便。主要功能特性有:- 面向集合儲存,易儲存物件型別的資料。
- 模式自由。
- 支援動態查詢。
- 支援完全索引,包含內部物件。
- 支援查詢。
- 支援複製和故障恢復。
- 使用高效的二進位制資料儲存,包括大型物件(如視訊等)。
- 自動處理碎片,以支援雲端計算層次的擴充套件性。
- 支援RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
- 檔案儲存格式為BSON(一種JSON的擴充套件)。
- 可通過網路訪問。
功能:
- 面向集合的儲存:適合儲存物件及JSON形式的資料。
- 動態查詢:Mongo支援豐富的查詢表示式。查詢指令使用JSON形式的標記,可輕易查詢文件中內嵌的物件及陣列。
- 完整的索引支援:包括文件內嵌物件及陣列。Mongo的查詢優化器會分析查詢表示式,並生成一個高效的查詢計劃。
- 查詢監視:Mongo包含一個監視工具用於分析資料庫操作的效能。
- 複製及自動故障轉移:Mongo資料庫支援伺服器之間的資料複製,支援主-從模式及伺服器之間的相互複製。複製的主要目標是提供冗餘及自動故障轉移。
- 高效的傳統儲存方式:支援二進位制資料及大型物件(如照片或圖片)
- 自動分片以支援雲級別的伸縮性:自動分片功能支援水平的資料庫叢集,可動態新增額外的機器。
適用場景:
- 網站實時資料處理。它非常適合實時的插入、更新與查詢,並具備網站實時資料儲存所需的複製及高度伸縮性。
- 快取。由於效能很高,它適合作為資訊基礎設施的快取層。在系統重啟之後,由它搭建的持久化快取層可以避免下層的資料來源過載。
- 高伸縮性的場景。非常適合由數十或數百臺伺服器組成的資料庫,它的路線圖中已經包含對MapReduce引擎的內建支援。
不適用場景:
- 要求高度事務性的系統。
- 傳統的商業智慧應用。
- 複雜的跨文件(表)級聯查詢。
二 MongoDB配置全攻略
版本說明:
RedHat:6.1 x86_64
MongoDB:2.6.3
首先,我們到官網(http://www.mongodb.org/downloads)下載64位Linux 版的MongoDB;
然後,做配置MongoDB之前的準備工作;
--建立MongoDB主目錄 # mkdir /usr/local/mongodb/ --解壓MongoDB包到MongoDB主目錄 # tar -xvf mongodb-linux-x86_64-2.6.3.tgz -C /usr/local/mongodb/ --建立MongoDB資料目錄,可以存放到其他位置,比如RAID、LVM上 # mkdir /usr/local/mongodb/data/ --建立MongoDB日誌目錄,建議放到var目錄下 # mkdir /usr/local/mongodb/log/
接著,我們使用mongod命令啟動MongoDB,再開啟另一個終端,使用mongo命令連線到MongoDB;
# cd /usr/local/mongodb/bin/ # ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/log/mongo.log # ./mongo MongoDB shell version: 2.6.3 connecting to: test >
接著,配置環境變數;
# pwd /usr/local/mongodb/bin # vim ~/.bash_profile # tail -n3 !$ tail -n3 ~/.bash_profile PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin export PATH # source !$ source ~/.bash_profile
為了更方便的啟動和關閉MongoDB,我們可以使用Shell寫指令碼,當然也可以加入到service中;
# cp ssh mongodb # vim mongodb # cat mongodb #!/bin/bash # # mongod Start up the MongoDB server daemon # # source function library . /etc/rc.d/init.d/functions #定義命令 CMD=/usr/local/mongodb/bin/mongod #定義資料目錄 DBPATH=/usr/local/mongodb/data #定義日誌目錄 LOGPATH=/usr/local/mongodb/log/mongo.log start() { #fork表示後臺執行 $CMD --dbpath=$DBPATH --logpath=$LOGPATH --fork echo "MongoDB is running background..." } stop() { pkill mongod echo "MongoDB is stopped." } case "$1" in start) start ;; stop) stop ;; *) echo $"Usage: $0 {start|stop}" esac
我們可以測試編寫指令碼的正確性;
# /etc/init.d/mongodb start about to fork child process, waiting until server is ready for connections. forked process: 1347 child process started successfully, parent exiting MongoDB is running background... # /etc/init.d/mongodb stop Terminated
當然,更好的方式是採用配置檔案,把MongoDB需要的引數寫入配置檔案,然後在指令碼中引用;
$ vim mongodb.conf $ cat mongodb.conf #代表埠號,如果不指定則預設為27017 #port=27027 #MongoDB資料檔案目錄 dbpath=/usr/local/mongodb/data #MongoDB日誌檔案目錄 logpath=/usr/local/mongodb/log/mongo.log #日誌檔案自動累加 logappend=true
編寫好配置檔案後,我們需要修改啟動指令碼;
# vim mongodb # cat mongodb #!/bin/bash # # mongod Start up the MongoDB server daemon # # source function library . /etc/rc.d/init.d/functions #定義命令 CMD=/usr/local/mongodb/bin/mongod #定義配置檔案路徑 INITFILE=/usr/local/mongodb/mongodb.conf start() { #&表示後臺啟動,也可以使用fork引數 $CMD -f $INITFILE & echo "MongoDB is running background..." } stop() { pkill mongod echo "MongoDB is stopped." } case "$1" in start) start ;; stop) stop ;; *) echo $"Usage: $0 {start|stop}" esac
編寫完成後,再次測試指令碼的正確性。
# /etc/init.d/mongodb start MongoDB is running background... # /etc/init.d/mongodb stop Terminated
三 後記
這是深入理解MongoDB的第一篇文章,本篇文章簡要地介紹了MongoDB,並把Linux下完整的配置過程呈現給讀者。
四 參考資料
http://baike.baidu.com/subview/3385614/9338179.htm
Good Luck!
Robin
2014年8月2日
相關文章
- MongoDB系列--深入理解MongoDB聚合(Aggregation )MongoDB
- Linux 下配置 node + mongodb 環境LinuxMongoDB
- 搭建高可用MongoDB叢集(一):配置MongoDBMongoDB
- Linux下Mongodb安裝和啟動配置LinuxMongoDB
- Linux 下安裝 MongodbLinuxMongoDB
- 學習MongoDB 一:MongoDB 入門(安裝與配置)MongoDB
- 深入理解mongodb查詢條件語句MongoDB
- Linux mongodb 安裝與配置LinuxMongoDB
- window下mongodb的簡單配置MongoDB
- MongoDB安全配置MongoDB
- Mongodb在Windows下安裝及配置MongoDBWindows
- mongodb下載MongoDB
- MongoDB 映象配置方法MongoDB
- Mongodb主從配置MongoDB
- 【mongodb安裝配置】MongoDB
- MongoDB入門簡介|MongoDB下載安裝|MongoDB語法MongoDB
- 【Mongodb】Mongodb sharding 管理之一MongoDB
- 深入淺出MongoDB複製MongoDB
- Scrapy+Flask+Mongodb+Swift開發全攻略(2)FlaskMongoDBSwift
- Linux下的Mongodb部署應用梳理LinuxMongoDB
- mongo(mongodb)在linux下的安裝MongoDBLinux
- windows下安裝MongoDB擴充套件和配置WindowsMongoDB套件
- MongoDB索引的簡單理解MongoDB索引
- 【MongoDB】安裝與配置MongoDB
- MongoDB配置與啟動MongoDB
- MongoDB安裝配置教程MongoDB
- mongodb 3.0.3 sharded cluster 配置MongoDB
- mongodb 3.0 replica set 配置MongoDB
- 如何配置 MongoDB 副本集MongoDB
- mongodb配置檔案常用配置項MongoDB
- Scrapy + Flask + Mongodb + Swift 開發爬蟲全攻略(1)FlaskMongoDBSwift爬蟲
- linux下Mongodb叢集搭建:分片+副本集LinuxMongoDB
- MongoDB在Linux下常用優化設定MongoDBLinux優化
- MongoDB | Linux 安裝MongoDBLinux
- MongoDB安裝(Linux)MongoDBLinux
- Windows下安裝MongoDBWindowsMongoDB
- Mac下安裝MongodbMacMongoDB
- 關於MongoDB的簡單理解(一)--基礎篇MongoDB