網站緩存(緩存是什麼)

1、緩存是什麼?廣義上的緩存是指CPU上的高速存儲器,它用於內存與CPU之間的數據交換,速度非常快。現在主要指的是存儲計算機原始數據的一個副本,也就是復制一份數據存儲在內存中,讓訪問數據時直接從內存讀取,而不去數據庫或者磁盤讀取。從而達到快速訪問的效果。在互聯網大環境中,緩存技術時系統提高訪問速度的非常關鍵的技術,可以不過分的說一句,緩存在計算機系統中,是無處不在的存在。這是一種以空間換時間的技術。復制數據導致使用空間增多,但大大的提升瞭數據的訪問速度。2、緩存由哪些分類一個稍微大一點的網站中,大概哪些地方使用瞭緩存呢?2.1、常見緩存分類2.1.1、頁面緩存前端頁面可以使用代碼選擇緩存某些元素,保存在本地。HTML5還可以有cookie,session,websql, indexdb, application cache等。前端頁面緩存通過manifest文件進行設置。2.1.2、瀏覽器緩存當用戶從瀏覽器發起請求時,第一次把網頁資源下載下來瞭,瀏覽器一般會開啟緩存,第二次訪問時就不會再去拉取這些資源瞭,從而提升效應速度。2.1.2、web代理服務端緩存比如我們代理服務器為nginx, 我們可以在nginx上做些什麼緩存。就比如配置緩存靜態文件,css, js, 圖片或其他靜態文件。2.1.3、CDN邊緣緩存我們的服務部署再不同的城市,如果離我們太遠,將會影響訪問速度,這時候CDN邊緣緩存就有用瞭,它會就近訪問對應服務器,並返回資源,返回資源時自己同樣也會做緩存操作,下次訪問就直接返回結果。2.1.4、服務端緩存本地緩存服務端將查詢到數據直接存儲一份在內存中,訪問時就直接從內存讀取,非常快速。但是在多態服務器時,並不是設置本地緩存一次,就能返回結果瞭。所以需要有分佈式緩存。分佈式緩存使用分佈式緩存作為服務端緩存,將查詢的數據存儲在第三方緩存服務器,每次從分佈式緩存中查詢,如果分佈式緩存也撐不住,可以在本地緩存再存儲一份副本。先從本地緩存獲取,有則直接返回。沒有則查詢分佈式緩存,分佈式緩存存在,則回填本地緩存。分佈式緩存不存在,則查詢數據庫,查詢成功就回填分佈式緩存和本地緩存。這兩級緩存一般也叫一級緩存和二級緩存。2.1.5、數據庫緩存數據庫會將相同的查詢語句緩存起來,如果下次來瞭一個一模一樣的查詢語句,那麼就直接返回上次緩存的結果。3、緩存使用的代價?緩存確實給我們的服務相應帶來瞭極大的便利,那麼緩存就這麼好,沒有什麼弊端嗎?當然不是,緩存也存在一定問題的,使用它可能你需要額外處理這些代價:需要更多的存儲空間來存儲數據海量數據同時訪問時,如果大量的緩存同時失效,可能會導致數據庫瞬間被壓垮,甚至服務直接宕機。所以需要處理緩存集中失效問題(失效時間分散設置)。海量數據訪問時,某個熱點數據的緩存消失瞭,導致瞬間大量請求到達數據庫。直接壓垮瞭它(查詢數據庫+回填緩存加一把分佈式鎖,實現並發串行化,然後回填緩存)緩存與數據庫數據同步,緩存同步問題是一個非常大的問題,解決方案(延時雙刪,阿裡canal做緩存同步處理)4、小結緩存的使用有利有弊,但是它的有利之處遠遠的大於它的弊端。所以緩存對於互聯網技術,真的非常非常關鍵。利用好緩存,您的項目將會像坐火箭一個,速度快到不可思議。但是也不要濫用緩存,從而導致內存過載,甚至導致OOM等錯誤使用方式。

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://kuaisubeian.cc/48280.html

kuaisubeian