Home >> Blog >> 什麼是緩存cache?
什麼是緩存cache?
什麼是緩存?
緩存 - 發音為 CASH - 是用於在計算環境中臨時存儲某些東西(通常是數據)的硬體或軟體。
它是少量更快、更昂貴的內存,用於提高最近或經常訪問的數據的性能。緩存的數據臨時存儲在緩存客戶端本地的可訪問存儲介質中,並與主存儲分開。緩存通常由中央處理單元 (CPU)、應用程式、Web 瀏覽器和作業系統使用。
使用緩存是因為大容量或主存儲無法滿足客戶的需求。緩存可減少數據訪問時間、減少延遲並改善輸入/輸出 ( I/O )。因為幾乎所有應用程式工作負載都依賴於 I/O 操作,所以緩存過程提高了應用程式性能。
緩存是如何工作的?
當緩存客戶端嘗試訪問數據時,它首先檢查緩存。如果在那裡找到數據,則稱為緩存命中。導致緩存命中的嘗試百分比稱為緩存命中率或比率。
在緩存中找不到的請求數據(稱為緩存未命中)從主內存中提取並複製到緩存中。這是如何完成的,以及從緩存中彈出哪些數據以為新數據騰出空間,取決於正在使用的緩存算法、緩存協議和系統策略。
Safari、Firefox 和 Chrome 等 Web 瀏覽器使用瀏覽器緩存來提高經常訪問網頁的性能。當用戶訪問網頁時,所請求的文件將存儲在用戶計算存儲中該瀏覽器的緩存中。
為了檢索以前訪問過的頁面,瀏覽器從緩存中獲取它需要的大部分文件,而不是讓它們從Web 伺服器重新發送。這種方法稱為讀取緩存。瀏覽器從瀏覽器緩存中讀取數據的速度比從網頁重新讀取文件的速度要快。
緩存之所以重要有幾個原因:
- 緩存的使用減少了活動數據的延遲。這會為系統或應用程式帶來更高的性能。
- 它將 I/O 轉移到緩存,減少對外部存儲和較低級別存儲區域網絡的 I/O 操作
- 數據可以永久保留在傳統存儲或外部存儲陣列中。這使用存儲或陣列提供的快照和複製等功能來維護數據的一致性和完整性。
- Flash僅用於將受益於較低延遲的部分工作負載。這導致使用更昂貴的存儲具有成本效益。
高速緩存要麼包含在 CPU 中,要麼嵌入在系統板上的晶片中。在較新的機器中,增加高速緩存內存的唯一方法是將系統板和 CPU 升級到最新一代。較舊的系統板可能有空插槽,可用於增加高速緩存。
緩存是如何使用的?
緩存用於存儲臨時文件,使用硬體和軟體組件。硬體高速緩存的一個示例是 CPU 高速緩存。這是電腦處理器上的一小塊內存,用於存儲最近使用或經常使用的基本電腦指令。
許多應用程式和軟體也有自己的緩存。這種類型的緩存臨時存儲與應用程式相關的數據、文件或指令,以便快速檢索。
Web 瀏覽器是應用程式緩存的一個很好的例子。如前所述,瀏覽器有自己的緩存,用於存儲來自先前瀏覽會話的訊息,以供將來的會話使用。想要重新觀看YouTube視頻的用戶可以更快地加載它,因為瀏覽器會從緩存中訪問它,該緩存是從上一次會話中保存的。
其他使用緩存的軟體類型包括:
- 存儲常用指令和文件的作業系統;
- 內容交付網絡,將訊息緩存在伺服器端以更快地交付網站;
- 域名系統,它們可用於存儲用於將域名轉換為 Internet 協議地址的訊息;和
- 資料庫,它們可以減少資料庫查詢的延遲
緩存有什麼好處?
緩存有幾個好處,包括:
- 性能。將數據存儲在緩存中可以讓電腦運行得更快。例如,存儲來自先前瀏覽會話的SEO search engine optimization 搜尋引擎優化文件的瀏覽器緩存可加快對後續會話的訪問。資料庫緩存可加快數據檢索速度,否則會花費大量時間和資源來下載。
- 離線工作。緩存還允許應用程式在沒有網際網路連接的情況下運行。應用程式緩存提供對最近訪問過或經常使用的數據的快速訪問。但是,緩存可能無法提供對所有應用程式功能的訪問。
- 資源效率。除了速度和靈活性之外,緩存還有助於物理設備節省資源。例如,快速訪問緩存可以節省電池電量。
緩存的缺點是什麼?
緩存存在問題,包括:
- 損壞。緩存可能會損壞,使存儲的數據不再有用。數據損壞可能導致瀏覽器等應用程式崩潰或數據顯示不正確。
- 表現。緩存通常是臨時內存的小型存儲。如果它們變得太大,可能會導致性能下降。它們還可以消耗其他應用程式可能需要的內存,從而對應用程式性能產生負面影響。
- 過時的訊息。有時,應用緩存會顯示舊的或過時的訊息。這可能會導致應用程式故障或返回誤導性訊息。如果網站或應用程式在 Internet 上得到更新,則使用先前會話中的緩存版本不會反映更新。這對於靜態內容不是問題,但對於在會話中或會話之間更改的動態內容是一個問題。
緩存算法
緩存維護指令由緩存算法提供。緩存算法的一些示例包括:
- 最不常用跟踪緩存條目的訪問頻率。計數最少的項目首先被刪除。
- 最近最少使用將最近訪問的項目放在緩存頂部附近。當緩存達到其限制時,將刪除最近最少訪問的項目。
- 最近使用最先刪除最近訪問的項目。當更有可能使用較舊的項目時,這種方法是最好的。
緩存策略
各種緩存策略決定了緩存的運行方式。然後包括以下內容:
- write-around 緩存將操作寫入存儲,跳過緩存。這可以防止在有大量寫入 I/O 時緩存被淹沒。這種方法的缺點是除非從存儲中讀取數據,否則不會緩存數據。結果,讀取操作較慢,因為數據尚未緩存。
- 直寫緩存將數據寫入緩存和存儲。直寫式緩存的優點是新寫入的數據總是被緩存,因此可以快速讀取。一個缺點是,在將數據寫入緩存和主存儲之前,寫入操作不會被認為是完整的。這可能會在寫入操作中引入延遲。
- 回寫式緩存類似於直寫式,因為所有的寫操作都指向緩存。但是使用回寫緩存,在數據被緩存後,寫操作被認為是完成的。一旦發生這種情況,數據就會從緩存複製到存儲中。
使用這種方法,讀取和寫入操作都具有低延遲。不利的一面是,根據使用的緩存機制,數據在被提交到存儲之前仍然容易丟失。
清除緩存有什麼作用以及應該多久完成一次?
清除緩存可以釋放設備上的內存空間。瀏覽器緩存使用內存來存儲直接從 Web 下載的文件。清除它可以解決用戶問題,例如以下;
- 完整的高速緩存內存可能會導致應用程式崩潰或無法正確加載。
- 舊緩存可能包含過時的訊息和文件,導致網頁無法加載或加載不正確。清除它們可以擺脫過時的訊息。
- 瀏覽器緩存還包含保存的個人訊息,例如密碼。清除它們可以保護用戶。
- 大多數瀏覽器緩存可以通過設置來清除。
應該定期清除緩存,但不是每天。由於以下問題,過於頻繁地清除緩存並不能很好地利用資源:
- 用戶失去了快速文件訪問的好處;
- 緩存會自行刪除一些文件,不需要這種維護;和
- 電腦將緩存新文件並再次填滿空間。
你如何清除緩存?
瀏覽器緩存是大多數最終用戶所熟悉的。在大多數情況下,可以通過轉到設置或首選項選項卡或菜單項來清除它們。這些功能還包含隱私設置、cookie和歷史記錄。用戶可以從這些選項卡或菜單中刪除或更改設置。
許多基於電腦的網絡瀏覽器都有快速訪問這些菜單的快捷鍵:
- 在Microsoft Windows機器上,按Ctrl-Shift-Delete。
- 在Apple Mac 上,按Command-Shift-Delete。
這些快捷方式將用戶帶到設置菜單,該菜單因瀏覽器而異。
以下是刪除谷歌瀏覽器緩存的方法:
- 如果在 Windows 機器上按Ctrl-Shift-Delete,在 Mac 上按Command-Shift-Delete 。
- 滾動到“隱私和安全”部分。
- 選擇清除瀏覽數據。
- 從下拉菜單中選擇一個時間段或選擇所有時間以刪除整個緩存。
- 單擊緩存的圖像和文件。
- 單擊清除數據。
緩存類型
緩存用於多種用途。各種緩存方法包括:
高速緩衝存儲器是微處理器可以比訪問常規 RAM 更快的 RAM。它通常直接與 CPU 相關聯,用於緩存經常訪問的指令。RAM 緩存比基於硬碟的緩存快,但緩存內存比 RAM 緩存快,因為它靠近 CPU。
緩存伺服器,有時稱為代理緩存,是一種專用的網絡伺服器或服務。緩存伺服器在本地保存網頁或其他 Internet 內容。
CPU緩存是放置在CPU上的一點內存。該內存以 CPU 的速度而不是以系統總線的速度運行,並且比RAM快得多。
硬碟緩存保存最近讀取的數據,有時還保存可能很快會訪問的相鄰數據區域。一些硬碟緩存會根據讀取頻率來緩存數據。經常讀取的存儲塊稱為熱塊,會自動發送到緩存中。
閃存緩存,也稱為固態硬盤緩存,使用NAND 閃存晶片來臨時存儲數據。與緩存在傳統硬盤驅動器或後備存儲的一部分上相比,閃存緩存更快地滿足數據請求。
持久緩存是在系統重新啟動或崩潰 的情況下不會丟失數據的存儲容量。備用電池用於保護數據或將數據刷新到電池支持的動態 RAM,作為防止數據丟失的額外保護。
RAM 緩存通常包括嵌入在主板上的永久內存和可以安裝在專用插槽或附件位置的內存模塊。主板總線提供對該內存的訪問。CPU 緩存的速度比 RAM 快 10 到 100 倍,響應 CPU 請求僅需幾納秒。RAM 緩存的響應時間比磁性介質快,後者以毫秒為單位提供 I/O。
翻譯後備緩衝區,也稱為TLB,是一種內存緩存,用於存儲虛擬內存到物理地址的最新轉換並加速虛擬內存操作。