您好,登錄后才能下訂單哦!
MongoDB是一款跨平臺、面向文檔的數據庫。可以實現高性能、高可用性,并且能夠輕松擴展,是一個基于分布式文件存儲的開源數據庫系統,在高負載的情況下,添加更多的節點可以保證服務器的性能。
在大數據時代中,大數據量的處理已經成了考量一個數據庫最重要的原因之一。MongoDB的一個主要目標就是盡可能的讓數據庫保持卓越的性能,這很大程度地決定了MongoDB的設計。MongoDB選擇了最大程度而利用內存資源用作緩存來換取卓越的性能,并且會自動選擇速度最快的索引來進行查詢。MongoDB盡可能精簡數據庫,將盡可能多的操作交給客戶端,這種方式也是MongoDB能夠保持卓越性能的原因之一。
MongoDB是非關系性數據庫(NoSQL)中功能最豐富,最像關系數據庫的。不采用關系模型是為了獲取更好的擴展性,MongoDB不在有“行”的概念,其運行方式主要基于兩個概念:集合(collection)和文檔(document)。
Mongo是一個高性能,開源,無模式的文檔型數據庫,它在許多場景下可用于替代傳統的關系型數據庫或鍵/值存儲方式。
1、面向集合的存儲:適合存儲對象及JSON形式的數據。
2、MongoDB安裝簡單,提供了面向文檔的存儲功能,操作起來比較容易。
3、MongoDB提供了復制,高可用性和自動分片功能。如果負載增加(需要更多的存儲空間和更強的處理能力),它可以分布在計算機網絡中的其他節點上,這就是所謂的分片。
4、MongoDB支持豐富的查詢表達式。
5、高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)。
1、MongoDB可以為Web應用提供可擴展的高性能數據存儲解決方案。MongoDB主要適用領域有網站數據、分布式場景、數據緩存和JSON文檔格式存儲。適合大數據量、高并發、弱事務的互聯網應用,其內置的水平擴展機制提供了從幾百萬到十億級別的數據處理能力,可以很好的滿足Web2.0和移動互聯網應用數據存儲的要求。
我們這里選擇的是直接下載軟件包,由于我使用的虛擬機是CentOS7并且是64位版本,所以我們選擇對應的RedHat7版本64位。下載完后經過配置可以直接使用。由于軟件包已經啟用了SSL安全加密,所以需要我們安裝openssl相關的依賴包。
[root@promote ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.0.tgz
#可以直接下載
[root@promote ~]# yum install openssl openssl-devel -y
#安裝相關依賴包
[root@promote ~]# tar xvfz mongodb-linux-x86_64-rhel70-4.0.0.tgz -C /usr/local/
#將壓縮包解壓到指定的目錄中
[root@promote ~]# mv /usr/local/mongodb-linux-x86_64-rhel70-4.0.0/ /usr/local/mongodb
#重命名軟件包,方便以后使用
由于我們下載的是已經編譯好的軟件包,所以我們需要自行創建數據存儲目錄,日志存儲日志及日志文件。
[root@promote ~]# mkdir -p /data/mongodb1
#創建數據存儲目錄
[root@promote ~]# mkdir -p /data/logs/mongodb
#創建日志存儲目錄
[root@promote ~]# touch /data/logs/mongodb/mongodb1.log
#創建日志文件
[root@promote ~]# chmod -R 777 /data/logs/mongodb/mongodb1.log
#修改日志文件權限,方便下面操作
當MongoDB處于頻繁訪問的狀態,如果shell啟動進程所占用的資源設置過低,會產生錯誤到時無法連接MongoDB。
[root@promote ~]# ulimit -n 2500 #修改shell所能啟用的最大進程數
[root@promote ~]# ulimit -u 2500 #修改shell所能打開的最大文件數
下載下來的軟件包沒有配置文件,這里需要我們自行創建。
[root@promote ~]# cd /usr/local/mongodb/bin/
[root@promote bin]# vim mongodb1.conf
port=27017 #默認服務器端口號
dbpath=/data/mongodb1 #數據存儲目錄,就是我們上一步創建的
logpath=/data/logs/mongodb/mongodb1.log #日志文件
logappend=true #使用追加方式寫日志
fork=true #后臺運行
maxConns=5000 #最大連接數
安裝并且配置好后就可以啟動的們的MongoDB服務了
[root@promote bin]# export PATH=$PATH:/usr/local/mongodb/bin/
#可以把MongoDB的路徑加入到環境變量,這樣可以直接使用MongoDB的相關命令
[root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb1.conf
#mongod用于啟動服務進程,-f后面加上服務的配置文件路徑
[root@promote bin]# netstat -ntap | grep mongod #可以查看MongoDB的進程啟動狀態
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 78984/mongo
[root@promote bin]# mongo #可以進入到數據庫中
[root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb1.conf --shutdown
#--shutdown表示關閉MongoDB服務進程
2018-07-16T21:22:05.828+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
killing process with pid: 78984
[root@promote bin]# netstat -ntap | grep mongod #沒有MongoDB進程
在單臺服務器資源充分的情況下,可以使用多實例,以便充分使用服務器資源。步驟和上面相同,再創建一組數據存儲目錄、日志文件和配置文件。
[root@promote bin]# mkdir -p /data/mongodb2
#創建新的數據存儲目錄
[root@promote bin]# touch /data/logs/mongodb/mongodb2.log
#創建新的日志文件
[root@promote bin]# chmod -R 777 /data/logs/mongodb/mongodb2.log
#賦予日志文件對應權限
[root@promote bin]# chmod -R 777 /data/logs/mongodb/mongodb2.log
[root@promote bin]# cp /usr/local/mongodb/bin/mongodb1.conf /usr/local/mongodb/bin/mongodb2.conf
#復制一份新的配置文件,再修改相應的參數
port=27018 #設置一個新的端口號
dbpath=/data/mongodb2 #設置新的數據存儲目錄
logpath=/data/logs/mongodb/mongodb2.log #設置新的日志文件
logappend=true
fork=true
maxConns=5000
[root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb2.conf #開啟新實例的進程
[root@promote bin]# mongod -f /usr/local/mongodb/bin/mongodb1.conf
2018-07-16T21:31:16.103+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
about to fork child process, waiting until server is ready for connections.
forked process: 79334
child process started successfully, parent exiting
[root@promote bin]# netstat -ntap | grep mongo
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 79334/mongod
tcp 0 0 127.0.0.1:27018 0.0.0.0:* LISTEN 79304/mongod
#可以看到開啟了兩個實例
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。