NoSQL(NoSQL = Not Only SQL ),意即"不僅僅是SQL"。
創(chuàng)新互聯(lián)建站服務項目包括澧縣網(wǎng)站建設、澧縣網(wǎng)站制作、澧縣網(wǎng)頁制作以及澧縣網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,澧縣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到澧縣省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
在現(xiàn)代的計算系統(tǒng)上每天網(wǎng)絡上都會產(chǎn)生龐大的數(shù)據(jù)量。
這些數(shù)據(jù)有很大一部分是由關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來處理。 1970年 E.F.Codd's提出的關(guān)系模型的論文 "A relational model of data for large shared data banks",這使得數(shù)據(jù)建模和應用程序編程更加簡單。
通過應用實踐證明,關(guān)系模型是非常適合于客戶服務器編程,遠遠超出預期的利益,今天它是結(jié)構(gòu)化數(shù)據(jù)存儲在網(wǎng)絡和商務應用的主導技術(shù)。
NoSQL 是一項全新的數(shù)據(jù)庫革命性運動,早期就有人提出,發(fā)展至2009年趨勢越發(fā)高漲。NoSQL的擁護者們提倡運用非關(guān)系型的數(shù)據(jù)存儲,相對于鋪天蓋地的關(guān)系型數(shù)據(jù)庫運用,這一概念無疑是一種全新的思維的注入。
事務在英文中是transaction,和現(xiàn)實世界中的交易很類似,它有如下四個特性:
1、A (Atomicity) 原子性
原子性很容易理解,也就是說事務里的所有操作要么全部做完,要么都不做,事務成功的條件是事務里的所有操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。
比如銀行轉(zhuǎn)賬,從A賬戶轉(zhuǎn)100元至B賬戶,分為兩個步驟:1)從A賬戶取100元;2)存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會莫名其妙少了100元。
2、C (Consistency) 一致性
一致性也比較容易理解,也就是說數(shù)據(jù)庫要一直處于一致的狀態(tài),事務的運行不會改變數(shù)據(jù)庫原本的一致性約束。
例如現(xiàn)有完整性約束a+b=10,如果一個事務改變了a,那么必須得改變b,使得事務結(jié)束后依然滿足a+b=10,否則事務失敗。
3、I (Isolation) 獨立性
所謂的獨立性是指并發(fā)的事務之間不會互相影響,如果一個事務要訪問的數(shù)據(jù)正在被另外一個事務修改,只要另外一個事務未提交,它所訪問的數(shù)據(jù)就不受未提交事務的影響。
比如現(xiàn)在有個交易是從A賬戶轉(zhuǎn)100元至B賬戶,在這個交易還未完成的情況下,如果此時B查詢自己的賬戶,是看不到新增加的100元的。
4、D (Durability) 持久性
持久性是指一旦事務提交后,它所做的修改將會永久的保存在數(shù)據(jù)庫上,即使出現(xiàn)宕機也不會丟失。
yum安裝過程
配置YUM源倉庫
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 /啟動服務replication: replSetName: yang /定義復制集名稱 netstat -ntap | grep 27017 /檢測端口是否開啟
多實例操作過程
下面添加2.3.4三個實例
創(chuàng)建新的存放點
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
啟動與檢測·
開啟服務 [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 /檢測端口,分別看到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
登陸測試
[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 >
完成!