mongdb 和 mysql的應(yīng)用場景粗卜,為什么mongdb有哪些優(yōu)勢
mongb優(yōu)點(diǎn):mongdb 適合于熱數(shù)據(jù)的讀寫快速铐伴,高擴(kuò)展性逝薪,自身的選舉機(jī)制(如果主庫出現(xiàn)問題踱启,可以在副本集中選舉出一個(gè)新的主庫)
mongdb缺點(diǎn):無事務(wù)报账,Mongdb2.0之后已經(jīng)將全局鎖變?yōu)閐b鎖,但是還是有l(wèi)ock埠偿,可能導(dǎo)致隊(duì)列堆積透罢。
mongdb適合于 比如車輛軌跡信息,溫濕度數(shù)據(jù)等機(jī)器采集到的數(shù)據(jù)冠蒋,因?yàn)檫@些數(shù)據(jù)都是實(shí)時(shí)采集羽圃,實(shí)時(shí)更新。會(huì)隨著時(shí)間推移浊服,數(shù)據(jù)量越來越大统屈,如果放在關(guān)系型數(shù)據(jù)庫(比如MYSQL),一般在超過500w條之后牙躺,性能就會(huì)下降的比較快愁憔。
為什么mongdb可以適合于熱數(shù)據(jù)的讀寫?
答:Mongdb使用的內(nèi)存映射技術(shù)孽拷,寫數(shù)據(jù)只要到內(nèi)存就可以吨掌,到硬件是后臺(tái)異步完成,
讀快是因?yàn)槟愕臄?shù)據(jù)可以在·內(nèi)存中裝下脓恕,只是讀內(nèi)存 自然就快了膜宋。文檔性模式設(shè)計(jì)一般將所需的數(shù)據(jù)集中到一起,硬盤讀寫耗時(shí)最高的就是隨機(jī)讀寫所產(chǎn)生的磁頭定位時(shí)間炼幔,而數(shù)據(jù)集中到一起秋茫,就省下了隨機(jī)定位的時(shí)間。
mongdb怎么保證數(shù)據(jù)的持久化
今天搞mysql數(shù)據(jù)庫搞了一天乃秀,結(jié)果是因?yàn)閞oot %的賬號(hào)密碼沒設(shè)置
首先我用的docker執(zhí)行的
docker run --privileged=true -v /etc/my.cnf,dst:/etc/my.cnf -v /var/own/mysqldata:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
docker run --name mysql-data -p 3306:3306 -v /mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="root" -d mysql
docker run -itd -p 3306:3306 --name test_mysql -v /home/mysql/mysql-files:/var/lib/mysql-files/ -v /usr/local/mysqlData/test/conf:/etc/mysql -v /usr/local/mysqlData/test/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --privileged=true --restart=always --dns=192.168.95.135 mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
解決肛著;
docker 容器默認(rèn)啟動(dòng)之后圆兵,還需要執(zhí)行一下改密碼的操作,還有數(shù)據(jù)持久化怎么解決枢贿?
分步解決:
docker容器版本 如果不寫tag默認(rèn)就是最新版本
修改docker 鏡像 實(shí)現(xiàn)自動(dòng)修改密碼 我自定義了Docker鏡像
完成數(shù)據(jù)持久化
在虛擬機(jī)上通過Docker安裝mysql
解決辦法:在docker run中加入 --privileged=true 給容器加上特定權(quán)限
原因:內(nèi)部沒有權(quán)限
原因分析:MySQL開啟了DNS的反向解析功能,這樣MySQL對(duì)連接的客戶端會(huì)進(jìn)行DNS主機(jī)名查找局荚;
解決辦法:
以后放棄csdn超凳,只相信官網(wǎng)了,還是官方文檔好
最后的啟動(dòng)命令是
docker run -itd -p 3306:3306 --name test_mysql -v /home/mysql/mysql-files:/var/lib/mysql-files/ -v /usr/local/mysqlData/test/conf:/etc/mysql -v /usr/local/mysqlData/test/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --privileged=true --restart=always --dns=192.168.95.135 mysql
成功
docker優(yōu)點(diǎn)是什么耀态,為什么用它轮傍?
優(yōu)點(diǎn):
1.簡化配置:降低了硬件要求和應(yīng)用環(huán)境之間的耦合度
2.代碼流水線管理:開發(fā)到上線的環(huán)境保持統(tǒng)一
3.提升開發(fā)效率
4.隔離應(yīng)用
5.整合服務(wù)器:由于沒有多個(gè)操作系統(tǒng)的內(nèi)存占用,以及能在多個(gè)實(shí)例中共享沒有使用的內(nèi)存
6.調(diào)試能力
7.多租戶環(huán)境:可以為每一個(gè)租戶的應(yīng)用層的多個(gè)實(shí)例創(chuàng)建隔離的環(huán)境
8.快速部署
docker優(yōu)點(diǎn)總結(jié):簡化配置茫陆,省掉操作系統(tǒng)的內(nèi)存占用金麸,共享多個(gè)實(shí)例中共享沒有使用的內(nèi)存,快速部署簿盅,隔離發(fā)布
缺點(diǎn):
必須在64位機(jī)器上運(yùn)行(現(xiàn)在大部分都是)
系統(tǒng)的linux內(nèi)核必須是3.8
內(nèi)核必須支持cgroups和命名空間
應(yīng)用場景:
場景一:節(jié)省項(xiàng)目環(huán)境部署時(shí)間
場景二:環(huán)境一致性
場景三:持續(xù)集成
場景四:微服務(wù)
場景五:彈性伸縮
Docker特點(diǎn):開箱即用挥下,快速部署,可移植性強(qiáng)桨醋,環(huán)境隔離
docker為什么省內(nèi)存棚瘟?省的哪部分?
明天要做的喜最,docker01重啟一下 看持久化好使不偎蘸,docker命令為什么一旦加上掛載就報(bào)莫名問題?docker優(yōu)點(diǎn)是什么瞬内,為什么用它迷雪?虛擬機(jī)怎么設(shè)置橋接模式,在別的電腦上也能鏈接虫蝶。mysql數(shù)據(jù)持久化 看公司項(xiàng)目socket怎么連接的 實(shí)現(xiàn)實(shí)時(shí)通知的 大概注意點(diǎn) 系統(tǒng)分析師的考試 正則表達(dá)式怎么寫