快取是運算中用來存放資料子集的高速資料儲存層,通常是暫時性的,因此未來請求該資料時會比存取資料的主要儲存位置速度更快。快取可讓您有效率地重複使用之前擷取或運算的資料。快取中的資料通常存放在快速存取硬體,例如 RAM (隨機存取記憶體),也可用於與軟體元件相互關聯。快取的主要目的是透過減少存取速度較慢的基礎儲存層的需要,提高資料擷取效能。快取以容量換取速度,通常會短暫地存放資料子集,而資料庫的資料則通常是完整且耐用的。
快取可以應用在各種技術層並發揮其效益,包括作業系統,聯網層包括內容交付網路 (CDN) 和 DNS、Web 應用程式及資料庫。
由於 RAM 和記憶體內引擎支援高請求率或 IOPS (每秒的輸入/輸出操作),快取可大規模提升資料擷取效能和降低成本。若使用傳統資料庫和以磁碟為基礎的硬體支援相同的規模,則需要額外的資源。這些額外的資源不但會提高成本,而且仍無法達到記憶體內快取提供的低延遲效能。
您可以使用快取大幅降低許多高讀取量應用程式工作負載的延遲和改善 IOPS,例如問與答入口網站、遊戲、媒體共享和社交聯網。快取的資訊可以包含資料庫查詢結果、運算密集型計算、API 請求/回應以及 Web 成品,例如 HTML、JavaScript 和映像檔案。操控資料集的運算密集型工作負載 (例如推薦引擎和高效能運算模擬) 也可受益於做為快取的記憶體內資料層。這些應用程式必須能夠在可擴展到數百個節點的機器叢集之間即時存取非常大型的資料集。由於基礎硬體的速度很慢,因此在以磁碟為基礎的存放區操控此資料成為這些應用程式非常大的瓶頸。
在分散式運算環境中,專用快取層可讓系統和應用程式依自己的生命週期與快取分開執行,使其不會對快取造成任何影響。快取可做為中央層,能夠依自己的生命週期和架構拓撲從完全不同的系統進行存取。這非常適合可動態縮減和擴展應用程式節點的系統。如果快取與使用它的應用程式或系統位於相同的節點,擴展可能會影響快取的完整性。此外,使用本機快取時,只有使用該資料的本機應用程式可獲得好處。在分散式快取環境中,資料可以擴展到多個快取伺服器並存放在一個集中的位置,讓使用該資料的所有程式都能獲益。
| 層級 | 用戶端 | DNS | Web | 應用程式 | 資料庫 |
| 使用案例 | 加快從網站擷取 Web 內容的速度 (瀏覽器或裝置) | 網域到 IP 解析 | 加快從 Web/應用程式伺服器擷取 Web 內容的速度。管理 Web 工作階段 (伺服器端) | 加快應用程式效能和資料存取的速度 | 降低與資料庫查詢請求有關的延遲 |
| 技術 | HTTP 快取標頭、瀏覽器 | DNS 伺服器 | HTTP 快取標頭、CDN、反向代理、Web 加速器、鍵值存放區 | 鍵值資料存放區、本機快取 | 資料庫緩衝區、鍵值資料存放區 |
| 解決方案 | 瀏覽器特定 | Amazon Route 53 | Amazon CloudFront、適用於 Redis 的 ElastiCache、適用於 Memcached 的 ElastiCache、合作夥伴解決方案 | 應用程式架構、適用於 Redis 的 ElastiCache、適用於 Memcached 的 ElastiCache、合作夥伴解決方案 | 適用於 Redis 的 ElastiCache、適用於 Memcached 的 ElastiCache |
實作快取層時,請務必了解快取資料的有效性。成功的快取會產生高命中率,這表示擷取時資料是存在的。當擷取的資料不在快取時,就會發生快取未命中。您可以套用 TTL (存留時間) 等控制以設定資料過期時間。另一個要考慮的項目是快取環境是否需要高可用性,您可以使用 Redis 等記憶體內引擎滿足這個條件。在某些情況下,可以使用記憶體內層做為獨立資料儲存層,而不是從主要位置快取資料。在這個案例中,請務必針對記憶體內引擎中的資料定義適當的 RTO (復原時間目標 – 從故障復原所花的時間) 和 RPO (復原點目標 – 復原時擷取的最後一個時間點或交易),以判斷是否合適。您可以應用不同記憶體內引擎的設計策略和特點滿足大部分的 RTO 和 RPO 要求。
Amazon ElastiCache 是一種 Web 服務,可在雲端輕鬆地部署、操作和擴展記憶體內資料存放區或快取。這項服務能讓您從快速且受管的記憶體內資料存放區擷取資訊,而不是完全倚賴速度較慢的磁碟型資料庫,從而提高 Web 應用程式的效能。
要了解如何實作有效的快取策略,請參閱這份關於記憶體內快取的技術白皮書。
現代應用程式中常見的挑戰是如何處理應用程式用量尖峰。此類範例包括超級盃或選舉期間的社交應用程式、黑色星期五購物節期間的電子商務網站等。增加資料庫負載會導致取得資料的延遲提高,使得應用程式的整體效能無法預測。透過利用高輸送量的記憶體內快取可緩解這個問題。
在許多應用程式中,有一小部分資料子集 (像是名人簡介或熱門產品) 可能存取的頻率比其他資料高。這會導致資料庫出現熱點,而且可能需要依據最常用資料的輸送量需求佈建多餘的資料庫資源。在記憶體內快取存放常用鍵值可減輕過度佈建的需求,而且還可為最常存取的資料提供快速且可預期的效能。
使用 Amazon ElastiCache 這類全受管服務可在雲端輕鬆開始使用快取。這些服務能夠免除設定、管理和操控快取的複雜性,讓您將時間花費在對組織最有價值的事物上。立即註冊 Amazon ElastiCache。

