国产精品奶水无码视频免费|激情五月天深爱网|精品国产女主播一区在线观看|国产黄网一区二区

CDN緩存服務器的更新策略?

2018-08-29 11:17:26 來源: 不止思考 作者:奎哥 熱度:

       在互聯網項目開發(fā)中,緩存的應用是非常普遍了,緩存可以幫助頁面提高加載速度,減少服務器或數據源的負載。

  1、為什么需要緩存?

  一般在項目中,最消耗性能的地方就是后端服務的數據庫了。而數據庫的讀寫頻率常常都是不均勻分布的,大多情況是讀多寫少,并且讀操作(select)還會有一些復雜的判斷條件,比如 like、group、join 等等,這些語法是非常消耗性能的,所有會出現很多的慢查詢,因此數據庫很容易在讀操作的環(huán)節(jié)遇到瓶頸。

  那么通過在數據庫前面,前置一個緩存服務,就可以有效的吸收不均勻的請求,抵擋流量波峰。

  另外,如果應用與數據源不在同一個服務器的情況下,中間還會有很多的網絡消耗,也會對應用的響應速度有很大影響,如果當前應用對數據實時性的要求不那么強的話,在應用側加上緩存就能很快速的提升效率。

  2、那使用緩存會遇到哪些問題呢?

  雖然緩存可以提高整體性能,但是它也可能會帶來別的問題。例如使用緩存之后,就相當于把數據存放了2份,一份是在數據庫中,另一份存放在緩存中。當有新的數據要寫入或者舊數據需要更新的時候,如果我們只更新了其中一份數據源,那兩邊的數據就不一致了,所以這里就存在一個緩存數據與數據庫數據如何進行有效且快速的同步問題,才可以保證數據的最終一致性。

  另外,加上緩存服務其實也引入了系統架構的復雜度,因為還需要額外的關注緩存自身帶來的下列問題:

  緩存的過期時間問題:設計緩存的過期時間需要非常的有技巧,且必須與業(yè)務實際情況相結合。因為如果設計的過期時間太短了,那會導致緩存效果不佳,且還會造成頻繁的從數據庫中往緩存里寫數據。如果緩存設計的過期時間太長了,又會導致內存的浪費。

  緩存的命中率問題:這也是設計緩存中需要存放哪些數據的很重要一點,如果設計的不好,可能會導致緩存命中率過低,失去緩存效果。一般對于熱點數據而言,要保證命中率達到70%以上效果最佳。

  緩存的穿透/雪崩問題:是指如果緩存服務一旦宕機或全部丟失,那么有可能一瞬間所有的流量都直接打到了后端數據庫上,可能會造成連鎖反應,瞬間的請求高峰極有可能導致數據庫無法承載。

  3、緩存的更新策略具體有哪些?

  典型的緩存模式,一般有如下幾種:

  Cache Aside

  Read/Write Through

  Write Behind

  每種模式都有不同的特點,適應與不同的項目場景,下面來依次看看:

  Cache Aside 模式

  這是大家經常用到的一種策略模式。這種模式主要流程如下:

  應用在查詢數據的時候,先從緩存Cache中讀取數據,如果緩存中沒有,則再從數據庫中讀取數據,得到數據庫的數據之后,將這個數據也放到緩存Cache中。

  如果應用要更新某個數據,也是先去更新數據庫中的數據,更新完成之后,則通過指令讓緩存Cache中的數據失效。

  這里為什么不讓更新操作在寫完數據庫之后,緊接著去把緩存Cache中的數據也修改了呢?

  主要是因為這樣做的話,就有2個寫操作的事件了,擔心在并發(fā)的情況下會導致臟數據,舉個例子:假如同時有2個請求,請求A和請求B,并發(fā)的執(zhí)行。請求A是要去讀數據,請求B是要去更新數據。初始狀態(tài)緩存中是沒有數據的,當請求A讀到數據之后,準備往回寫的時候,此刻,請求B正好要更新數據,更新完了數據庫之后,又去把緩存更新了,那請求A再往緩存中寫的就是舊數據了,屬于臟數據。

  那么 Cache Aside 模式就沒有臟數據問題了嗎?不是的,在極端情況下也可能會產生臟數據,比如:

  假如同時有2個請求,請求A和請求B,并發(fā)的執(zhí)行。請求A是要去讀數據,請求B是要去寫數據。假如初始狀態(tài)緩存中沒有這個數據,那請求A發(fā)現緩存中沒有數據,就會去數據庫中讀數據,讀到了數據準備寫回緩存中,就在這個時候,請求B是要去寫數據的,請求B在寫完數據庫的數據之后,又去設置了緩存失效。這個時候,請求A由于在數據庫中讀到了之前的舊數據,開始往緩存中寫數據了,此時寫進入的就也是舊數據。那么最終就會導致,緩存中的數據與數據庫的數據不一致,造成了臟數據。

  不過這種概率比上面一種概率要小很多。所以整體而言 Cache Aside 模式 還是一種比較簡單實用的方式。

  Read/Write Through 模式

 

  這個模式其實就是將 緩存服務 作為主要的存儲,應用的所有讀寫請求都是直接與緩存服務打交道,而不管最后端的數據庫了,數據庫的數據由緩存服務來維護和更新。不過緩存中數據變更的時候是同步去更新數據庫的,在應用的眼中只有緩存服務。

  流程就相當簡單了:

  應用要讀數據和更新數據都直接訪問緩存服務

  緩存服務同步的將數據更新到數據庫

  這個模式出現臟數據的概率就比較低,但是就強依賴緩存了,對緩存服務的穩(wěn)定性有較大要求,另外,增加新緩存節(jié)點時還會有初始狀態(tài)空數據問題。

  Write Behind 模式

  這個模式就是 Read/Write Through 模式 的一個變種。區(qū)別就是 Read/Write Through 模式的緩存寫數據庫的時候是同步的,而 Write Behind 模式 的緩存操作數據庫是異步的。

  流程如下:

  應用要讀數據和更新數據都直接訪問緩存服務

  緩存服務異步的將數據更新到數據庫(通過異步任務)

  這個模式的特點就是速度很快,效率會非常高,但是數據的一致性比較差,還可能會有數據的丟失情況,實現邏輯也較為復雜。

  以上就是目前三種主流的緩存更新策略,另外還有Refrsh-Ahead模式等由于使用的不是很常見就不詳細介紹了。

  緩存是互聯網項目中非常普遍的一個提高效率的方案,用法比較多,也比較關鍵,大家可以一起交流。

責任編輯:潘威

相關推薦

CDN讓網絡訪問體驗日趨完美

近日,艾肯家電網簽約國內知名的CDN網站加速服務提供商北京快網,北京快網將為艾肯家電網提供提全站CDN加速服務。記者了解到,目前國內比較大的門戶網站為現實網站的高速訪問,早已使用了CDN網絡加速。目前,包括騰訊、新浪、搜狐、網易、酷六、紅袖添香等眾多網站都采用了北京快網的CDN網絡加速服務這一服務。據《中國互聯網年度綜合報告2009-2011》數據顯示,預計至2011年互聯網市場規(guī)模將達到1300億,互聯網總用戶數將達到6億。網民數量的持續(xù)提升同時也讓互聯網服務發(fā)展如火如荼,視頻、SNS、垂直網站等新興網站層出不窮,在帶來全新商機的同時,也讓互聯網帶寬、服務器等資源捉襟見肘。而CDN服務提供商

傳雅虎董事會成員肯尼有意競選CEO

9月29日消息,據國外媒體報道,雅虎董事會成員、國際上最大的CDN服務商Akamai總裁大衛(wèi)·肯尼(DavidKenny)公開表示有意競選雅虎CEO。國際上最大的CDN服務商Akamai總裁大衛(wèi)·肯尼知情人士透露,肯尼目前還在管理Akamai的業(yè)務,但確定要公開競選雅虎CEO。該人認為,肯尼對雅虎內部發(fā)生的一切非常清楚,知道自己在干什么。昨天,肯尼曾與雅虎產品團隊工作人員進行數小時長談。近日,他還曾與包括私募公司在內的雅虎投資方、股東交換了意見。某科技媒體認為,肯尼適宜擔

優(yōu)酷數據中心:要“優(yōu)”不要“酷”

提起優(yōu)酷,喜歡看網上視頻的人大概沒有不知道的。創(chuàng)辦于2006年的優(yōu)酷,因著“快者為王”的產品理念,以“快速播放,快速發(fā)布,快速搜索”的特性,滿足了互聯網用戶日益增長的多元化互動需求,從而成為國內視頻網站中的領軍企業(yè)。支持優(yōu)酷實現快速、優(yōu)質用戶體驗的,是優(yōu)酷背后強大的數據中心和IT技術能力。據優(yōu)酷CTO姚鍵介紹,優(yōu)酷每年的數據增長率大概都在50%。為了應對不斷增長的巨大流量帶來挑戰(zhàn),2010年,優(yōu)酷對位于北京的主數據中心進行了改造。簡化的二層網絡姚鍵表示,由于優(yōu)酷提供的視頻業(yè)務對網絡設備提出了時延小、可大規(guī)模擴展的要求,因此對網絡交換設備的選型十分重要??紤]到主數據中心的戰(zhàn)略地位,網絡規(guī)劃設計需

10大前沿運營商級網絡技術

本文介紹介紹了10大前沿運營商級網絡技術:GPON,云計算,云手機,CDN,集裝箱數據中心,高壓直流供電,蒸發(fā)式冷卻,風光互補基站,RFID。一、GPONGPON技術發(fā)源于1995年形成的ATMPON(既APON),最早由FSAN標準組織提出,經ITU-T指定,2004年形成最終標準。一直與EPON處于競爭地位。在亞太地區(qū)一直被壓制,2010年開始發(fā)力,目前新增份額已經開始超越EPON。中移動專寵GPON,中電信、中聯通也開始青睞GPON。GPON為運營商提供了更大的分光比、2倍于EPON的下行帶寬,在FTTH中優(yōu)勢尤為明顯。中國移動研究院網絡研究所所長助理李晗——“GPON的DFB+APD提