日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
圖片存儲(chǔ)架構(gòu)學(xué)習(xí):緩存,架構(gòu)師的美麗小三

前言

創(chuàng)新互聯(lián)建站不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營(yíng)銷、技術(shù)、服務(wù)都有自己獨(dú)特見解,公司采取“創(chuàng)意+綜合+營(yíng)銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時(shí),也能得到同行業(yè)的專業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿足企業(yè)一站式全網(wǎng)營(yíng)銷推廣需求,讓再小的品牌網(wǎng)站制作也能產(chǎn)生價(jià)值!

在上一篇中,我強(qiáng)行拆散了WEB服務(wù)器和圖片服務(wù)器這對(duì)戀人,這樣做或許有點(diǎn)不太厚道,但對(duì)于他們未來各自的發(fā)展絕對(duì)有好處,不久的將來,他們會(huì)感謝我的。

好了,回到今天的話題,今天這篇文章主要來談?wù)劸彺婕夹g(shù)在圖片存儲(chǔ)架構(gòu)中的重要地位,并一起來探索一下實(shí)現(xiàn)圖片緩存的方案。我個(gè)人的觀點(diǎn)是:一個(gè)性能優(yōu)良的、擴(kuò)展性強(qiáng)的大型系統(tǒng),勢(shì)必要緩存一切可以緩存的資源,因?yàn)闆]有什么比在內(nèi)存中操作更快的了(CPU不算,那里可存的空間太小了)。

PS:本文部分內(nèi)容將有空空老師友情出演。

為什么要緩存圖片

簡(jiǎn)單的說緩存可以通過直接訪問內(nèi)存來提高圖片讀取速度,緩解因站點(diǎn)高訪問量而帶來的圖片I/O瓶頸。很多時(shí)候,圖片是一類不經(jīng)常更新的靜態(tài)資源,是典型的讀遠(yuǎn)大于寫的情況,因此完全滿足緩存的原則:一次寫入,無數(shù)次讀取。當(dāng)然也不是所有滿足這點(diǎn)的都會(huì)用到緩存,比如上次寫的那篇優(yōu)酷網(wǎng)架構(gòu)學(xué)習(xí)筆記中就提到,優(yōu)酷網(wǎng)在存儲(chǔ)視頻時(shí)并沒有大量采用視頻緩存技術(shù),原因有二:

  1. Squid 的 write() 用戶進(jìn)程空間有消耗,Lighttpd 1.5 的 AIO(異步I/O) 讀取文件到用戶內(nèi)存導(dǎo)致效率也比較低下,這是內(nèi)存鎖造成的。
  2. 如接到老大哥通知要把某個(gè)視頻撤下來,如果在緩存里是比較麻煩的(這個(gè)是亮點(diǎn),O(∩_∩)O)

但總的來說,對(duì)于像圖片、視頻之類的靜態(tài)文件,還是非常適合做緩存的。緩存永遠(yuǎn)是架構(gòu)師的美麗小三,哈哈。

圖片緩存方案探究

接下來就重點(diǎn)來探究一下實(shí)現(xiàn)圖片緩存的具體方案,文章盡量按人的正常思維來步步深入,從簡(jiǎn)單到復(fù)雜,一起來看看吧,希望看完后能略微提升你的設(shè)計(jì)品味。時(shí)尚的設(shè)計(jì)是一個(gè)不斷推敲和磨合的過程,這個(gè)相信各位程序猿和攻城獅都深有體會(huì)吧。關(guān)于這一塊,我將分2篇文章來解說,這一篇先介紹如何在IIS等 web容器中設(shè)置Http Headers來實(shí)現(xiàn)圖片的緩存。

注意:這里的web容器是指IIS、Tomcat或者其他的WEB服務(wù)器軟件,下面我以IIS來舉例。

IIS中的緩存分為服務(wù)器緩存和客戶端緩存,對(duì)于靜態(tài)資源(html、css、js、圖片等),服務(wù)器緩存是默認(rèn)開啟的,也就是我們?cè)谙蚍?wù)器請(qǐng)求靜態(tài)資源時(shí),服務(wù)器是先從其內(nèi)存中取文件的,取不到再去硬盤中找(真累?。。?,有時(shí)候開啟服務(wù)器緩存很讓人討厭,后面我們會(huì)提到??蛻舳司彺骖櫭剂x是把待請(qǐng)求的資源緩存在客戶端的,用戶請(qǐng)求資源時(shí)先從本地找,找不到再去麻煩服務(wù)器。下面先具體談?wù)効蛻舳司彺妗?/p>

1、客戶端緩存

如何設(shè)置呢?請(qǐng)看下圖

(圖片來源)

上圖表明開啟IIS的緩存模塊,并設(shè)置過期時(shí)間為1天,也就是1天之內(nèi),用戶訪問這張圖片時(shí)均可以從其本地的緩存副本中讀取,而不必來服務(wù)器下載,當(dāng)然1天之后,緩存失效,圖片下載后又重新會(huì)被載入瀏覽器緩存中。當(dāng)然這種方式需要你有管理IIS的權(quán)限,我想作為架構(gòu)師的你這點(diǎn)權(quán)限算個(gè)皮毛啊。

這個(gè)什么原理呀?別急,請(qǐng)聽我娓娓道來,小伙子要耐心

這個(gè)主要是靠Http Headers來控制的,Http Headers是HTTP請(qǐng)求(Request)和響應(yīng)(Response)的核心,它承載了關(guān)于客戶端瀏覽器,請(qǐng)求頁(yè)面,服務(wù)器等相關(guān)的信息。簡(jiǎn)單地說,它是瀏覽器和服務(wù)器之間交互的信息牌,瀏覽器通過它告知服務(wù)器客戶端的相關(guān)信息和請(qǐng)求信息(比如我是什么類型的瀏覽器、我是否可以接收你服務(wù)器 gzip過的內(nèi)容、請(qǐng)求的長(zhǎng)度是多少、是否允許緩存等等內(nèi)容);服務(wù)器通過它告知瀏覽器服務(wù)器響應(yīng)這次請(qǐng)求的相關(guān)信息(比如服務(wù)器變量、返回的長(zhǎng)度、 cookie等信息),具體Http Headers的內(nèi)容可以參看這篇文章。

了解了Http Headers,那這個(gè)緩存問題就好解釋了,我的解釋如下:當(dāng)我屁顛屁顛地帶著這個(gè)Http Headers去向服務(wù)器請(qǐng)求空空老師的寫真圖片時(shí),服務(wù)器提取出Http Headers發(fā)現(xiàn)其中的Cache-Control是Public的,也就是可以緩存的,然后服務(wù)器再看看自己設(shè)置的緩存過期時(shí)間,發(fā)現(xiàn)還沒過期,于是告訴我,小子,先在你本地去找空空老師的圖片吧,找不到再來向我要。于是我回去找了,發(fā)現(xiàn)本地真的有空空老師的寫真圖,他沒有騙我,好開心啊。

不知道我這樣解釋空空迷們懂了么?不管你懂不懂,我反正是懂了!當(dāng)然有不正確的地方請(qǐng)指出,謝謝。

2、服務(wù)器緩存

上面我已經(jīng)說過,IIS中的服務(wù)器緩存是默認(rèn)開啟的,IIS默認(rèn)會(huì)把靜態(tài)資源緩存起來,以便快速讀取,當(dāng)靜態(tài)文件有改動(dòng)時(shí),緩存也能夠自動(dòng)更新。但是有一個(gè)很討厭的問題,假如我這些圖片都是大量的(幾百萬幾千萬)且都是實(shí)時(shí)更新的(比如股票行情圖),這樣問題來了,我這么多圖片一更新,IIS緩存還沒來得及更新(量實(shí)在是太TM大了),于是我會(huì)在很長(zhǎng)一段時(shí)間內(nèi)訪問到的圖片都是舊版本的,這令炒股的我非常懊惱。那么既然它違背緩存的原則,我們?cè)趺唇盟兀糠椒ń^對(duì)沒你想得那么簡(jiǎn)單,我建議大家看看這篇文章,是直接修改MetaBase.xml文件,如果對(duì)服務(wù)器不熟的家伙是不敢隨便動(dòng)這個(gè)文件的,不過架構(gòu)師的你嘛,這點(diǎn)小兒科了,哈哈哈。

通過上面的闡述,我想聰明的你應(yīng)該會(huì)使用這個(gè)最簡(jiǎn)單的方法設(shè)置緩存了,如果你真的是很笨還木有理解,那么請(qǐng)先用你的左手打右手兩下,還不懂,那再用你的右手打左手兩下,我就這么打過來的,直到懂了為止,哈哈哈。

好了,以上是關(guān)于IIS中設(shè)置緩存的方法,這里好幾次引用了空空老師,讓您受累了,謝謝。

原文鏈接:http://www.itivy.com/ivy/archive/2012/2/18/image-storage-cache-1.html


網(wǎng)站標(biāo)題:圖片存儲(chǔ)架構(gòu)學(xué)習(xí):緩存,架構(gòu)師的美麗小三
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/cocpeoc.html