記憶體資料庫是一個專用資料庫,主要依賴於內部記憶體進行資料儲存。其能消除存取標準硬碟 (SSD) 的需求,從而將回應時間縮至最短。記憶體資料庫適用於需要微秒回應時間,且流量中隨時可能出現大型峰值的使用案例,例如遊戲分數排行榜、期間儲存和即時資料分析。主記憶體資料庫 (MMDB)、記憶體資料庫系統 (IMDS) 和即時資料庫系統 (RTDB) 也係指記憶體資料庫。

記憶體資料庫有哪些優勢

我們在下面詳細探討記憶體資料庫的優勢。

低延遲,提供即時回應

延遲是指存取資料請求和應用程式回應之間的延遲。無論擴展規模如何,記憶體資料庫都能提供可預測的低延遲。其可提供毫秒級讀取延遲、低於 10 毫秒的寫入延遲和高輸送量。

因此,記憶體儲存能讓企業即時根據資料做出決策。您設計的應用程式可以即時處理資料並針對變化做出回應,並避免無法挽回的延誤。例如,自動駕駛車輛可針對感應器資料進行記憶體計算,為緊急煞車提供所需的分秒回應時間。

高輸送量

輸送量是記憶體資料庫的特色之一。輸送量是指特定時間內的讀取 (讀取輸送量) 或寫入 (寫入輸送量) 操作數量。範例包括位元/分鐘或每秒交易。

高可擴展性

您可以擴展您的記憶體資料庫以滿足不斷變化的應用程式需求。寫入和讀取擴展不會對效能造成負面影響。資料庫會保持在線上狀態,並支援在擴展的同時進行讀寫操作。

記憶體資料庫有哪些使用案例

記憶體資料庫是銀行、電信、遊戲和行動廣告業的好選擇。以下是我們給出的一些記憶體資料庫的使用案例範例。

快取

快取是一個高速資料儲存層,可儲存一般暫時性資料的子集。快取的主要目的是透過減少存取速度較慢的基礎儲存層的需要,提高資料擷取效能。這代表,未來請求該資料時,將比存取資料主儲存位置的速度更快。

快取可讓您有效率地重複使用之前擷取或運算的資料。記憶體資料儲存可更快速地存取快取資料。快取將犧牲持久性,以換取回應時間。由於資料是從記憶體中取得,因此回應時間更快,但快取並不能防止記憶體中的資料遺失。這就是為什麼快取通常會與以磁碟為基礎的耐用資料庫結合。

即時競價

即時競價是指購買和出售線上廣告曝光次數。通常,競價必須在使用者載入網頁的 100-120 毫秒內進行,有時甚至只有 50 毫秒。在此期間,即時競價應用程式會向所有買家要求廣告出價、根據多個條件選擇獲勝出價、顯示報價,並收集廣告顯示後的資訊。記憶體資料庫非常適合擷取、處理和分析時間延遲低於一毫秒的即時資料。

遊戲排行榜

相對遊戲排行榜能顯示玩家相對於其他同等級玩家的位置。這些排行榜可提升玩家的參與度,並防止一般玩家與頂級玩家進行比較而失去遊戲動力。記憶體資料庫可在擁有百萬玩家的遊戲中快速提供排序結果,並即時更新排行榜。

記憶體快取如何運作

記憶體快取透過隨機存取記憶體 (RAM) 來儲存資料。該技術可將資料表直接存儲在 RAM 中,而不是在外部磁碟上。專門的資料結構可以為資料記錄編制索引。索引可作為指向特定列和欄的直接指標。但是,實際的實體資料是壓縮的,而且格式為非關聯式。當您提出存取要求時,資料庫會使用索引導覽至確切的資料值。存儲的資料隨時能以可直接使用的格式提供。

64 位元運算、RAM 價格降低和多核伺服器等因素都讓記憶體儲存更為普遍。此外,雲端式資料存放區可讓您根據需要擴展或縮小 RAM 資源,從而讓記憶體技術更靈活且易於存取。

記憶體快取與傳統磁碟式資料庫之間的區別

傳統資料庫將所有資料持續保留於外部磁碟機或固態硬碟。每一個讀寫操作都需要磁碟存取。相反,記憶體快取並不會優先考慮資料持續性。例如,快取只能定期將資料儲存到外部儲存媒介。我們在下面總結了記憶體快取和傳統資料庫之間的區別。

記憶體快取和記憶體資料庫之間有什麼區別

記憶體快取可提供更好的效能,因為寫入沒有持續性,從而消除了持續資料所需的額外時間。記憶體資料庫會持續寫入,讓資料的變更持久有效。這種持久性會導致寫入效能較低。但是,記憶體資料庫仍然能提供比磁碟式資料庫更好的效能。從效能的角度來看,其位於記憶體快取和以磁碟為基礎的資料庫之間。

記憶體快取的限制是什麼

由於所有資料都僅在記憶體中儲存和管理,因此記憶體快取可能會因處理程序或伺服器故障而遺失資料。為了提高持久性,記憶體快取可能會定期將資料持久保留在磁碟資料庫上。我們將在下方詳述一些可改善持久性的機制。

快照檔

快照檔可記錄資料庫在特定時刻的狀態。記憶體快取會定期或在受控關機期間產生快照。雖然快照在某種程度上提高了持久性,但快照之間仍可能會發生資料遺失。

交易記錄

交易紀錄會將資料庫的變更記錄在外部日誌文件中。記錄無關於資料讀取/寫入,並且不影響效能。日誌檔可協助自動恢復記憶體快取。

複寫

某些記憶體快取會依賴備援來提供高可用性。它們會在不同的記憶體模組中保留相同資料的多個副本。若發生模組失敗,其可自動容錯移轉至重複的備份副本。這可以降低快取時遺失資料的風險。

AWS 如何支援您的記憶體快取和資料庫要求

AWS 提供多種不同的全受管記憶體快取和資料庫服務,以滿足您的特定需求。

記憶體資料庫

Amazon MemoryDB for Redis

Amazon MemoryDB for Redis 是一種持久的記憶體資料庫服務,可提供超快效能。它與頗受歡迎的開源 Redis 資料存放區相容。這讓客戶能夠使用他們現已在使用的相同靈活且友好的 Redis 資料結構、API 和命令快速建置應用程式。MemoryDB 還能使用多可用區域交易日誌跨多個可用區域 (AZ) 持久存放您的資料,以實現快速容錯移轉、資料庫復原和節點重新啟動。

記憶體快取

Amazon ElastiCache for Redis

Amazon ElastiCache for Redis 是極為快速的記憶體快取服務,可為網際網路規模的即時應用程式提供低於一毫秒的延遲。開發人員可以將 ElastiCache for Redis 當作記憶體快取使用,也可以當作不需要高資料持久性的使用案例。ElastiCache for Redis 叢集組態可支援客戶在單一叢集中執行高達 6.1 TB 記憶體容量的 Redis 工作負載。ElastiCache for Redis 也提供從執行中叢集新增和移除碎片的能力。您可以動態擴展或縮減 Redis 叢集工作負載以因應需要的變更。

Amazon ElastiCache for Memcached

Amazon ElastiCache for Memcached 是與 Memcached 相容的記憶體鍵值快取服務。該服務提供與 Memcached 相同的高效能、易用且簡單等各種優點。ElastiCache for Memcached 是全受管、可擴展和安全的服務,非常適合經常存取資料必須位於記憶體內的使用案例。

立即建立免費帳戶,開始使用 AWS 上的記憶體快取或資料庫!

Amazon MemoryDB for Redis 簡介
Amazon ElastiCache for Redis 簡介