{eval=Array;=+count(Array);}

亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

問答專欄Q & A COLUMN

為啥Redis/Mongo這么快,就不能直接替代mysql嗎?

shusenshusen 回答0 收藏1
問題描述:現(xiàn)在基本互聯(lián)網(wǎng)項目都使用了緩存技術(shù)滿足業(yè)務(wù)需求,為啥還要使用關(guān)系型數(shù)據(jù)庫
收藏問題

6條回答

cheukyin

cheukyin

回答于2022-06-28 15:22

mysql、redis、MongoDB基本上在對應(yīng)的業(yè)務(wù)場景中都會用到。習(xí)慣上,所有的業(yè)務(wù)數(shù)據(jù)都是需要“落庫”的,這種“落庫”指關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)寫入,可以很直觀的在關(guān)系型數(shù)據(jù)庫的客戶端進(jìn)行查詢,可以持久化到磁盤空間,因 mysql 開源穩(wěn)定,滿足業(yè)務(wù)需求,其成為互聯(lián)網(wǎng)公司的最優(yōu)選擇。而 redis 經(jīng)常在高并發(fā)的請求加速、優(yōu)化用戶體驗中用到,普遍的做法是將數(shù)據(jù)庫中的數(shù)據(jù)請求一次,放入緩存中,同時返回給用戶,而修改數(shù)據(jù)庫時對緩存數(shù)據(jù)進(jìn)行清理,保障數(shù)據(jù)一致性。而對于mongoDB,我在業(yè)務(wù)中使用不多,但其可以高效存儲二進(jìn)制大對象 (比如照片、視頻、消息等),在業(yè)界得到了充分的認(rèn)可。下面簡述一下其各自的優(yōu)缺點,僅供參考。

mysql,優(yōu)點:體積小、速度快、總體擁有成本低,開源,提供的接口支持多種語言連接操作;支持多種操作系統(tǒng);采用完全的多線程編程,線程輕量;鑒權(quán)體系完善。缺點:不支持熱備份,但可通過binlog日志進(jìn)行同步;不支持自定義數(shù)據(jù)類型;對 xml 支持不夠良好,但此基本上可以忽略,目前很少見到 xml 的使用。

redis,優(yōu)點:讀寫性能優(yōu)異,選擇的最大理由;支持?jǐn)?shù)據(jù)持久化,支持 AOF 和 RDB 兩種持久化方式;支持主從復(fù)制,可以進(jìn)行讀寫分離;數(shù)據(jù)結(jié)構(gòu)豐富;缺點:不具備自動容錯和恢復(fù)功能,主機(jī)從機(jī)宕機(jī)導(dǎo)致客戶端請求失敗;主機(jī)宕機(jī),宕機(jī)前有部分?jǐn)?shù)據(jù)未能及時同步到從機(jī),切換 IP 后還會引入數(shù)據(jù)不一致的問題,降低了系統(tǒng)的可用性;Redis 的主從復(fù)制采用全量復(fù)制,網(wǎng)絡(luò)波動時可能進(jìn)行全量的數(shù)據(jù)復(fù)制,對集群造成壓力;Redis 較難支持在線擴(kuò)容,在集群容量達(dá)到上限時在線擴(kuò)容比較復(fù)雜。

MongoDB,優(yōu)點:弱一致性(最終一致),更能保證用戶的訪問速度;文檔結(jié)構(gòu)的存儲方式,能夠更便捷的獲取數(shù);高效存儲二進(jìn)制大對象 (比如照片、視頻、消息等);與其他的NoSQL相比第三方支持豐富;缺點:不支持事務(wù)操作;占用空間過大;成熟的維護(hù)工具較為欠缺。

個人感覺,redis 適用于數(shù)據(jù)變化快且數(shù)據(jù)庫大小可預(yù)見(適合內(nèi)存容量)的業(yè)務(wù)場景,其適合做關(guān)系型數(shù)據(jù)庫的中間層。MongoDB 可以作為大數(shù)據(jù)對象 (比如照片、視頻、消息等)的數(shù)據(jù)緩存層組合出一個必要的數(shù)據(jù)實體(靈活的 json 結(jié)構(gòu)可以組合出復(fù)雜數(shù)據(jù)類型,又可以復(fù)制多臺服務(wù)器),讀取速度也快,高并發(fā)構(gòu)建主從服務(wù)器無壓力。

作者:夕陽雨晴,歡迎關(guān)注我的頭條號:偶爾美文,主流Java,為你講述不一樣的碼農(nóng)生活。

評論0 贊同0
  •  加載中...
dinfer

dinfer

回答于2022-06-28 15:22

目前看來,關(guān)系型的數(shù)據(jù)庫和非關(guān)系型的數(shù)據(jù)庫是互補(bǔ)的,并不是互相取代的,因為這兩者的適用場景不同。

關(guān)系型數(shù)據(jù)庫適應(yīng)場景是:業(yè)務(wù)復(fù)雜并且需要很多的關(guān)聯(lián),對讀操作沒有太大要求,但是需要對事務(wù)的支持。

非關(guān)系型數(shù)據(jù)庫適用場景是:業(yè)務(wù)相對簡單,對讀操作要求很高,而且數(shù)據(jù)吞吐量大,還能支持快速擴(kuò)容等場景。

因此,這兩種數(shù)據(jù)庫在未來都會一直存在,在各自的場景發(fā)揮自己的作用,每一種新技術(shù)的誕生都是為解決現(xiàn)有的一些痛處的,技術(shù)選型沒有最好的,只有最適合的技術(shù)。

評論0 贊同0
  •  加載中...
quietin

quietin

回答于2022-06-28 15:22

場景不一樣,redis雖然也算一種數(shù)據(jù)庫,但是一般更多的用于加速訪問數(shù)據(jù)庫數(shù)據(jù)

mongodb是非關(guān)系型數(shù)據(jù)庫更多的用于快速存儲數(shù)據(jù)

評論0 贊同0
  •  加載中...
xumenger

xumenger

回答于2022-06-28 15:22

1、數(shù)據(jù)結(jié)構(gòu)模型是需要關(guān)系連接的(nosql Redis存儲是沒有問題的)nosqlRedis讀取不方便 幾乎做不到

2、快是因為在內(nèi)存中存儲也就是說沒有持久化 nosql Redis持久化 預(yù)估性能差不多少

3、邏輯及實現(xiàn)復(fù)雜程度遠(yuǎn)高于關(guān)系型數(shù)據(jù)庫

評論0 贊同0
  •  加載中...
DevYK

DevYK

回答于2022-06-28 15:22

先自學(xué)關(guān)系數(shù)據(jù)庫的一致性和事務(wù)性概念吧

評論0 贊同0
  •  加載中...
alin

alin

回答于2022-06-28 15:22

我們就是用MongoDB替代sql,很好用。新版本也支持事務(wù)了,微服務(wù)的大殺器。當(dāng)然了,內(nèi)存價格確實昂貴,所以等數(shù)據(jù)量上去后,會考慮使用TiDB。

評論0 贊同0
  •  加載中...

相關(guān)問題

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<