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

記憶體資料庫有哪些優勢

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

低延遲,提供即時回應

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

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

高輸送量

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

高可擴展性

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

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

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

快取

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

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

即時競價

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

遊戲排行榜

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

記憶體快取如何運作

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

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

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

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

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

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

記憶體快取的限制是什麼

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

快照檔

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

交易記錄

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

複寫

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

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

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

記憶體資料庫

Amazon MemoryDB

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

記憶體快取

Amazon ElastiCache

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

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