您好,登錄后才能下訂單哦!
NoSQL(NoSQL = Not Only SQL ),意即"不僅僅是SQL"。
在現(xiàn)代的計(jì)算系統(tǒng)上每天網(wǎng)絡(luò)上都會(huì)產(chǎn)生龐大的數(shù)據(jù)量。
這些數(shù)據(jù)有很大一部分是由關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)來處理。 1970年 E.F.Codd's提出的關(guān)系模型的論文 "A relational model of data for large shared data banks",這使得數(shù)據(jù)建模和應(yīng)用程序編程更加簡(jiǎn)單。
通過應(yīng)用實(shí)踐證明,關(guān)系模型是非常適合于客戶服務(wù)器編程,遠(yuǎn)遠(yuǎn)超出預(yù)期的利益,今天它是結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)在網(wǎng)絡(luò)和商務(wù)應(yīng)用的主導(dǎo)技術(shù)。
NoSQL 是一項(xiàng)全新的數(shù)據(jù)庫(kù)革命性運(yùn)動(dòng),早期就有人提出,發(fā)展至2009年趨勢(shì)越發(fā)高漲。NoSQL的擁護(hù)者們提倡運(yùn)用非關(guān)系型的數(shù)據(jù)存儲(chǔ),相對(duì)于鋪天蓋地的關(guān)系型數(shù)據(jù)庫(kù)運(yùn)用,這一概念無疑是一種全新的思維的注入。
事務(wù)在英文中是transaction,和現(xiàn)實(shí)世界中的交易很類似,它有如下四個(gè)特性:
1、A (Atomicity) 原子性
原子性很容易理解,也就是說事務(wù)里的所有操作要么全部做完,要么都不做,事務(wù)成功的條件是事務(wù)里的所有操作都成功,只要有一個(gè)操作失敗,整個(gè)事務(wù)就失敗,需要回滾。
比如銀行轉(zhuǎn)賬,從A賬戶轉(zhuǎn)100元至B賬戶,分為兩個(gè)步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會(huì)莫名其妙少了100元。
2、C (Consistency) 一致性
一致性也比較容易理解,也就是說數(shù)據(jù)庫(kù)要一直處于一致的狀態(tài),事務(wù)的運(yùn)行不會(huì)改變數(shù)據(jù)庫(kù)原本的一致性約束。
例如現(xiàn)有完整性約束a+b=10,如果一個(gè)事務(wù)改變了a,那么必須得改變b,使得事務(wù)結(jié)束后依然滿足a+b=10,否則事務(wù)失敗。
3、I (Isolation) 獨(dú)立性
所謂的獨(dú)立性是指并發(fā)的事務(wù)之間不會(huì)互相影響,如果一個(gè)事務(wù)要訪問的數(shù)據(jù)正在被另外一個(gè)事務(wù)修改,只要另外一個(gè)事務(wù)未提交,它所訪問的數(shù)據(jù)就不受未提交事務(wù)的影響。
比如現(xiàn)在有個(gè)交易是從A賬戶轉(zhuǎn)100元至B賬戶,在這個(gè)交易還未完成的情況下,如果此時(shí)B查詢自己的賬戶,是看不到新增加的100元的。
4、D (Durability) 持久性
持久性是指一旦事務(wù)提交后,它所做的修改將會(huì)永久的保存在數(shù)據(jù)庫(kù)上,即使出現(xiàn)宕機(jī)也不會(huì)丟失。
yum安裝過程
配置YUM源倉(cāng)庫(kù)
cd /etc/yum.repos.d/vim mongodb-org.repo 寫入以下內(nèi)容 [mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
安裝 yum list yum install mongodb-org -y
基本配置
vim /etc/mongod.conf 修改如下 net: port: 27017 bindIp: 0.0.0.0 /允許所有人訪問 systemctl start mongod.service /啟動(dòng)服務(wù)replication: replSetName: yang /定義復(fù)制集名稱 netstat -ntap | grep 27017 /檢測(cè)端口是否開啟
多實(shí)例操作過程
下面添加2.3.4三個(gè)實(shí)例
創(chuàng)建新的存放點(diǎn)
mkdir -p /data/mongodb/mongodb{2,3,4} /首先創(chuàng)建數(shù)據(jù)文件存放位置 mkdir -p /data/mongodb/logs /日志文件存放位置 touch /data/mongodb/logs/mongodb{2,3,4}.log /日志文件 chmod 777 /data/mongodb/logs/*.log /給日志文件加權(quán) cd /data/mongodb/ /記得檢查操作是否奏效 [root@cent mongodb]# ls logs mongodb2 mongodb3 mongodb4 [root@cent mongodb]# cd logs/ [root@cent logs]# ll 總用量 0 -rwxrwxrwx. 1 root root 0 9月 12 09:48 mongodb2.log -rwxrwxrwx. 1 root root 0 9月 12 09:48 mongodb3.log -rwxrwxrwx. 1 root root 0 9月 12 09:48 mongodb4.log
編輯2.3.4的配置文件
vim /etc/mongod2.conf 修改如下 systemLog: destination: file logAppend: true path: /后面的3,4則改為mongodb3.log storage: dbPath: /后面的3,4則改為mongodb3 journal: enabled: true net: port: /后面的3,4則改為27019,27020 bindIp: 0.0.0.0replication: replSetName: yang
啟動(dòng)與檢測(cè)·
開啟服務(wù) [root@cent logs]# mongod -f /etc/mongod2.conf about to fork child process, waiting until server is ready for connections. forked process: 83795child process started successfully, parent exiting[root@cent logs]# mongod -f /etc/mongod3.conf about to fork child process, waiting until server is ready for connections. forked process: 83823child process started successfully, parent exiting[root@cent logs]# mongod -f /etc/mongod4.conf about to fork child process, waiting until server is ready for connections. forked process: 83851child process started successfully, parent exiting[root@cent logs]# netstat -ntap /檢測(cè)端口,分別看到27017,18,19,20Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 83597/mongod tcp 0 0 0.0.0.0:27018 0.0.0.0:* LISTEN 83795/mongod tcp 0 0 0.0.0.0:27019 0.0.0.0:* LISTEN 83823/mongod tcp 0 0 0.0.0.0:27020 0.0.0.0:* LISTEN 83851/mongod tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 745/rpcbind tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 4548/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1199/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1202/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2997/master tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 21813/sshd: root@pt tcp 0 0 192.168.137.11:22 192.168.137.1:50063 ESTABLISHED 21813/sshd: root@pt tcp6 0 0 :::111 :::* LISTEN 745/rpcbind tcp6 0 0 :::22 :::* LISTEN 1199/sshd tcp6 0 0 ::1:631 :::* LISTEN 1202/cupsd tcp6 0 0 ::1:25 :::* LISTEN 2997/master tcp6 0 0 ::1:6010 :::* LISTEN 21813/sshd: root@pt
登陸測(cè)試
[root@cent logs]# mongo --port 27019 /指定端口登陸 MongoDB shell version v3.6.7 connecting to: mongodb://127.0.0.1:27019 /MongoDB server version: 3.6.7 >
完成!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。