文章出處

緩存是系統快速響應中的一種關鍵技術,是一組被保存起來以備將來使用的東西,介于應用開發和系統開發之間,是產品經理們經常顧及不到的地方,算是技術架構中的非功能性約束吧。

也就是說,緩存是系統調優時常用且行之有效的手段,無論從操作系統還是應用系統,緩存策略無處不在。

很多技術都打著緩存的旗號,所以談起緩存往往似是而非,與語境有著緊密的關系,換個說法,來看一看緩存在不同場景的分類。

客戶端緩存

瀏覽器的緩存可以將之前渲染的頁面保存為文件,當用戶再次訪問時可用避開網絡連接,從而減少負載。現在的HTML5支持了本地存儲,大部分BS 應用都可以舉重若輕了。

如何把客戶端緩存對于業務組件透明和客戶端緩存數據及時更新,是客戶端緩存能否成功應用的關鍵。

客戶端可以將內容緩存在內存,文件,或本地數據庫(例如Sqlite)中。

例如,iOS 的圖片緩存框架SDWeb架構如下:

SDweb

web代理

web 代理的作用跟瀏覽器的內置緩存類似,只是位于瀏覽器和互聯網之間,網絡請求通過代理來中繼。對于企業而言,即可以節省成本,又能提高性能。

對于Web代理而言,曾經流行的是Squid,它支持建立復雜緩存層級結構的能力,詳細的日志、高性能緩存以及用戶認證支持。Squid同時支持各種插件,例如Squid Guard就是一個提供URL過濾的插件,對于屏蔽某些站點和內容十分有用。如果想分析Squid的各種指標,webalizer 應該是個不錯的選擇。

Squid 的內部機制如下:

Squid

邊緣緩存

邊緣緩存位于應用服務器的前面,可以處理來自不同用戶的請求,主要用于向用戶提供靜態的內容,以減少應用服務器的介入。邊緣緩存的商業化服務就是CDN了,例如AWS 的Cloud Front,我國的ChinaCache等。

邊緣緩存的一個有名的開源工具就是varnish,在默認情況下進行保守緩存。也就是說,varnish 只緩存它所知的安全內容。varnish的一個特性是使用虛擬內存,精妙之處在于利用了操作系統的管理機制。varnish可以高度定制如何處理請求,緩存哪些內容。就愛閱讀www.92to.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20161206/63566.html

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()