廣義上的緩存是指CPU上的高速存儲器,它用于内存與CPU之間的數據交換,速度非常快。
現在主要指的是存儲計算機原始數據的一個副本,也就是複制一份數據存儲在内存中,讓訪問數據時直接從内存讀取,而不去數據庫或者磁盤讀取。從而達到快速訪問的效果。
在互聯網大環境中,緩存技術時系統提高訪問速度的非常關鍵的技術,可以不過分的說一句,緩存在計算機系統中,是無處不在的存在。
這是一種以空間換時間的技術。複制數據導緻使用空間增多,但大大的提升了數據的訪問速度。
2、緩存由哪些分類一個稍微大一點的網站中,大概哪些地方使用了緩存呢?
前端頁面可以使用代碼選擇緩存某些元素,保存在本地。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、緩存使用的代價?緩存确實給我們的服務相應帶來了極大的便利,那麼緩存就這麼好,沒有什麼弊端嗎?
當然不是,緩存也存在一定問題的,使用它可能你需要額外處理這些代價:
緩存的使用有利有弊,但是它的有利之處遠遠的大于它的弊端。所以緩存對于互聯網技術,真的非常非常關鍵。利用好緩存,您的項目将會像坐火箭一個,速度快到不可思議。
但是也不要濫用緩存,從而導緻内存過載,甚至導緻OOM等錯誤使用方式。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!