本文涉及以下內(nèi)容
mongodb簡(jiǎn)介
MongoDB特點(diǎn)
NoSQL簡(jiǎn)介
CAP 原則
與BASE的關(guān)系
MongoDB安裝
mongodb簡(jiǎn)介
MongoDB 是一個(gè)使用C++編寫的,開(kāi)源的,面向文檔的NoSQL(Not Only SQL)數(shù)據(jù)庫(kù)。
NoSQL的意思是“不僅僅是SQL”,是目前流行的“非關(guān)系型數(shù)據(jù)庫(kù)”的統(tǒng)稱。
常見(jiàn)的NoSQL數(shù)據(jù)庫(kù)如:Redis、CouchDB、MongoDB、HBase、Cassandra等。
MongoDB特點(diǎn)
- 高性能、易于使用、易于擴(kuò)展、功能豐富
- 面向集合存儲(chǔ),模式自由
- 支持動(dòng)態(tài)查詢,支持javascript表達(dá)式查詢
- 支持索引
- 支持副本集復(fù)制和自動(dòng)故障恢復(fù)
- 自動(dòng)處理分片
- 支持二進(jìn)制和大型對(duì)象數(shù)據(jù)
- 文件存儲(chǔ)格式為BSON(JSON的一種擴(kuò)展)
NoSQL
NoSQL解決了哪些問(wèn)題
- 1,對(duì)數(shù)據(jù)庫(kù)高并發(fā)讀寫的需求。
- 2,對(duì)海亮數(shù)據(jù)的高效率和訪問(wèn)的需求。
- 3,對(duì)數(shù)據(jù)庫(kù)的高可擴(kuò)展性和高可用性的需求。
NoSQL的優(yōu)點(diǎn)
擴(kuò)展簡(jiǎn)單方便,尤其是水平橫向擴(kuò)展(縱向擴(kuò)展是指用更強(qiáng)的機(jī)器;橫向擴(kuò)展是指把數(shù)據(jù)分散到多個(gè)機(jī)器)。
讀寫快速高效,多數(shù)都會(huì)映射到內(nèi)存操作 。
成本低廉,用普通機(jī)器,分布式集群即可 。
數(shù)據(jù)模型靈活,沒(méi)有固定的數(shù)據(jù)模型。
CAP 原則
CAP原則又稱CAP定理,指的是在一個(gè)分布式系統(tǒng)中,
Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區(qū)容錯(cuò)性),三者不可得兼
1: 強(qiáng)一致性(Consistency):系統(tǒng)在執(zhí)行過(guò)某項(xiàng)操作后仍然處于一致的,在分布式系統(tǒng)中,更 新操作執(zhí)行成功后所有的用戶都應(yīng)該讀取到最新的值,這樣的系統(tǒng)被認(rèn)為具有強(qiáng)一致性。
2: 可用性(Availability): 每一個(gè)操作總是能夠在一定的時(shí)間內(nèi)返回結(jié)果。
3: 分區(qū)容錯(cuò)性(Partition tolerance): 系統(tǒng)在存在網(wǎng)絡(luò)分區(qū)的情況下仍然可以接受
請(qǐng)求并處理,這里網(wǎng)絡(luò)分區(qū)是指由于某種原因網(wǎng)絡(luò)被分成若干個(gè)孤立區(qū)域,而區(qū)域之間互不相通
根據(jù)CAP 原理將數(shù)據(jù)庫(kù)分成了滿足CA原則,滿足CP原則和滿足AP原則三大類
CA: 單點(diǎn)集群,滿足一致性,可用性,通常在可擴(kuò)展上不太強(qiáng)大,比如關(guān)系型數(shù)據(jù)庫(kù)。
CP: 滿足一致性和分區(qū)容錯(cuò)性,通常性能不是特別高,如分布式數(shù)據(jù)庫(kù)。
AP: 滿足可用性和分區(qū)容錯(cuò)性,通常可能對(duì)一致性要求低一些,如大多數(shù)的NoSQL。

與BASE的關(guān)系
BASE就是為了解決關(guān)系數(shù)據(jù)庫(kù)強(qiáng)一致性引起的問(wèn)題而引起的可用性降低而提出的解決方案。
BASE(Basically Available,Soft-state,Eventual consistency )
1: 基本可用(Basically Available): 系統(tǒng)能夠基本運(yùn)行,一直提供服務(wù)。
2: 軟狀態(tài)(Soft-state): 系統(tǒng)不要求一直保持強(qiáng)一致?tīng)顟B(tài)。
3: 最終一致性(Eventual consistency):系統(tǒng)需要在某一時(shí)刻后達(dá)到一致性要求。
MongoDB安裝
1,下載https://www.mongodb.com/download-center#community。
2,然后tar zvxf 解壓。
3,拷貝到相應(yīng)的文件夾即可。
啟動(dòng)
1,新建一個(gè)文件 指定數(shù)據(jù)庫(kù) 日志 存儲(chǔ)位置
mdb.conf
dbpath=../dbs
logpath=../logs/log
fork=true
nojournal = true
./mongod -f mdb.conf
可選參數(shù):
port 指定服務(wù)端口號(hào),默認(rèn)端口27017。
bind_ip 綁定服務(wù)IP,若綁定127.0.0.1,則只能本機(jī)訪問(wèn),不指定默認(rèn)本地所有IP。
logpath 指定MongoDB日志文件,注意是指定文件不是目錄。
fork 以守護(hù)進(jìn)程的方式運(yùn)行MongoDB,創(chuàng)建服務(wù)器進(jìn)程。
auth 啟用驗(yàn)證。
dbpath 指定數(shù)據(jù)庫(kù)路徑。
journal 啟用日志選項(xiàng),MongoDB的數(shù)據(jù)操作將會(huì)寫入到j(luò)ournal文件夾的文件里。
maxConns 最大同時(shí)連接數(shù) 默認(rèn)2000 。
./mongod -help 查看更多配置。
關(guān)閉
1:如果是在Shell里面啟動(dòng)的,ctrl+c退出shell就關(guān)閉了。
2:如果是在后臺(tái)啟動(dòng)的,運(yùn)行 pkill mongod。
3:也可以進(jìn)入javascript shell,切換到admin數(shù)據(jù)庫(kù),運(yùn)行db.shutdownServer()。