溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

填坑利器?Redis如何彌補(bǔ)傳統(tǒng)MySQL架構(gòu)的不足

發(fā)布時間:2020-08-08 10:17:07 來源:ITPUB博客 閱讀:145 作者:云編 欄目:MySQL數(shù)據(jù)庫

對于技術(shù)人來說,Redis最成功的一點(diǎn)就是可以補(bǔ)充和擴(kuò)展生態(tài)系統(tǒng)中的其他數(shù)據(jù)庫。雖然使用新的后端數(shù)據(jù)庫來替換舊的后端數(shù)據(jù)庫,往往會被認(rèn)為風(fēng)險巨大、價格昂貴,但是原有的數(shù)據(jù)庫可能很難進(jìn)行線性擴(kuò)展以滿足用戶需求。

傳統(tǒng)MySQL架構(gòu)難以滿足的現(xiàn)代應(yīng)用程序需求包括:

  1. 傳統(tǒng)數(shù)據(jù)庫的讀/寫速度對會話存儲等用例不友好;

  2. 引入新表或修改現(xiàn)有模式非常復(fù)雜,這也導(dǎo)致了添加新功能和應(yīng)用程序會有困難;

  3. 傳統(tǒng)數(shù)據(jù)庫會受到每秒可執(zhí)行操作的數(shù)量和并發(fā)連接數(shù)的限制,所以在數(shù)據(jù)庫實(shí)例增多的情況下,基礎(chǔ)架構(gòu)和維護(hù)成本也會增加。

Redis和傳統(tǒng)數(shù)據(jù)庫結(jié)合會產(chǎn)生哪些化學(xué)反應(yīng)呢?首先,如果應(yīng)用程序的數(shù)據(jù)是存儲在MySQL或其它關(guān)系型數(shù)據(jù)庫中,那么Redis可以作為前端數(shù)據(jù)庫處于應(yīng)用程序和MySQL之間;其次,還可以利用Redis來設(shè)計旁路讀出式和寫通式緩存解決方案、會話存儲和速率限制器,這樣可以提高性能、加速創(chuàng)新,以更少的資源擴(kuò)展來獲得最佳的用戶體驗(yàn)。

填坑利器?Redis如何彌補(bǔ)傳統(tǒng)MySQL架構(gòu)的不足

Redis作為“參與型系統(tǒng)”

Redis內(nèi)存中鍵值數(shù)據(jù)存儲可為用戶提供低延遲響應(yīng),其內(nèi)置的數(shù)據(jù)結(jié)構(gòu)(例如Lists、Hashes、 Sets、Sorted Sets、Bitmaps、Hyperloglog和Geospatial Indices),較于關(guān)系型數(shù)據(jù)庫能夠更有效地執(zhí)行某些數(shù)據(jù)操作。

所以,我們建議在數(shù)據(jù)訪問層后使用Redis作為“參與型系統(tǒng)”來存儲熱數(shù)據(jù),同時將MySQL指定為“記錄系統(tǒng)”。

另外,Redis如果應(yīng)用于以下用例,那么就可以規(guī)避掉很多可能在原有應(yīng)用程序、數(shù)據(jù)庫或網(wǎng)絡(luò)層中出現(xiàn)的瓶頸:

  • 緩存:為內(nèi)存訪問提供一個分層模型,Redis中存儲應(yīng)用程序中常用、重復(fù)讀取的數(shù)據(jù)。緩存也可幫助應(yīng)用程序快速檢索數(shù)據(jù)并限制數(shù)據(jù)庫服務(wù)器上的負(fù)載。

  • 會話存儲:在所有交互式應(yīng)用程序中,服務(wù)器為每個活動用戶維護(hù)一個唯一會話。相比于依賴MySQL等關(guān)系型數(shù)據(jù)庫來持久化會話數(shù)據(jù),Redis在具有足夠RAM大小的服務(wù)器上,單個集群就可以管理數(shù)千個會話。

  • 實(shí)時分析:通過排行榜、儀表板、民意測驗(yàn)、消息、計數(shù)器和其他實(shí)時聚合器進(jìn)行的游戲或操作需要與最終用戶進(jìn)行持續(xù)的互動和通信。而Redis強(qiáng)大、高效的數(shù)據(jù)結(jié)構(gòu)可以收集和處理數(shù)百萬個同時進(jìn)行的活動或?qū)ο?,并將其發(fā)送到活動用戶手中。

  • 度量:Redis可以通過速率限制應(yīng)用程序在一定時間內(nèi)的調(diào)用次數(shù),幫助開發(fā)人員在高峰使用時間內(nèi)高效地管理傳統(tǒng)服務(wù)器上的負(fù)載。

當(dāng)然,除了上面的用例,Redis在消息代理、數(shù)據(jù)結(jié)構(gòu)存儲和臨時數(shù)據(jù)存儲等用例中表現(xiàn)也很突出??偨Y(jié)一下就是Redis能更快地收集和獲取數(shù)據(jù)并反饋給終端用戶。再進(jìn)一步的話,Redis Enterprise提供高可用性、內(nèi)存復(fù)制、自動伸縮和重新分片,以及基于前沿CRDT的分布式數(shù)據(jù)庫和內(nèi)置Redis模塊(如RediSearch、ReJSON、Rebloom和Redis Graph)。

借助于Redis,我們在傳統(tǒng)解決方案中也可以享受到“即時體驗(yàn)”,其在性能、靈活性和可擴(kuò)展性方面的優(yōu)勢值得我們嘗試!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI