什麼是 Valkey?

Valkey 是記憶體內鍵/值資料儲存庫,適合各種應用程式建構需求,包括快取、訊息佇列和工作階段儲存庫。Valkey 也可以做為主要記憶體內資料庫使用,也就是將資料儲存在 RAM 中,加快讀寫速度。

Valkey 是 NoSQL 資料庫,結構定義比 關聯式資料庫 (資料以嚴格的欄/列形式儲存) 更具彈性。

Valkey 使用簡單的鍵/值方法儲存資料,也就是將值對應至專屬 ID (索引鍵)。因此,直接根據索引鍵擷取資料時,查詢速度會非常快。Valkey 也靈活支援各種資料類型,包括字串、集合、清單、雜湊和串流。

想直接開始設定 Valkey 叢集嗎?瞭解如何開始使用 Memorystore

重點摘要

Valkey 是開放原始碼的鍵/值資料儲存庫,以超低延遲著稱,非常適合用於快取、訊息佇列和需要即時資料的應用程式。以下簡要介紹 Valkey 的主要功能:

  • 記憶體內資料儲存庫:主要將資料儲存在 RAM 中,因此讀取和寫入速度極快。
  • 鍵/值方法:以鍵/值組合儲存資料,可靈活處理各種資料類型及快速查詢。
  • Redis 替代方案:Valkey 與 Redis 使用相同的程式碼集,但仍維持開放原始碼。


Valkey 常見問題

Valkey 可儲存多種資料類型,包括字串、雜湊、清單、集合和排序集合。此外,Valkey 也支援串流、地理空間索引、點陣圖和向量等更進階的資料類型,用途十分廣泛且適合各種應用程式,包括 AI 代理。


使用 Valkey 等記憶體內資料庫的主要原因在於速度。從 RAM 存取資料的速度比從磁碟讀取資料快,這也是為何 Valkey 的延遲時間極短,通常不到 1 毫秒。這對於即時快取和快速分析等需要立即存取資料的應用情境至關重要。


主要差異在於資料的結構、儲存和擷取方式。Valkey 等鍵/值資料庫會將資料儲存為一組不重複的索引鍵,每個索引鍵都對應單一值。這種簡單的儲存模式,有利於依索引鍵快速查詢資料。另一方面,關聯式資料庫會將資料儲存在資料表中,並使用 JOIN 連結相關資料,這種模式最適合從多個集合擷取資料的查詢。


使用 Valkey 的好處

Valkey 兼具速度、彈性、擴充性和韌性,可滿足嚴苛的工作負載。

高速記憶體內資料庫

Valkey 主要將資料儲存在 RAM 而非磁碟,因此處理量極高且延遲低,非常適合重視速度的應用程式。

開放原始碼

Valkey 是開放原始碼專案並受益於社群貢獻,並可彈性整合及自訂,不受授權限制。


高可用性

Valkey 支援主要/複本複製功能,可自動執行容錯移轉和資料備援,將停機時間降至最低,確保服務持續運作。

資料保留

Valkey 雖然主要為記憶體內資料庫,但提供資料保留功能,因此能避免資料遺失。Redis 可透過 RDB (Redis 資料庫) 快照和 AOF (僅附加檔案) 記錄檔將資料儲存至磁碟,確保資料在重新啟動後仍能使用。


順暢的水平資源調度

Valkey 的設計宗旨是有效率地將資料分散到多個節點和叢集。這表示使用者能輕鬆擴充資源,處理不斷增加的流量,且效能不會下降。


即時通訊

Valkey 提供 Pub/Sub 訊息傳遞系統,可讓不同應用程式或單一應用程式的不同部分進行即時通訊,實現即時對話和即時資料動態饋給等功能。


Valkey 的常見用途

Valkey 等記憶體內資料儲存庫特別適合講求極低延遲的應用程式和功能,包括:

  • 快取:Valkey 可以充當低速磁碟式資料庫的前端高速快取層。將經常存取的資料儲存在 Valkey,可大幅降低主要資料庫的負載,並加快回應速度。
  • 訊息佇列:Valkey 的 Pub/Sub 功能使其成為絕佳的訊息代理程式,可用來促進不同服務或微服務之間的即時通訊,以支援對話應用程式和通知等用途。
  • 即時分析:Valkey 的速度非常快,因此適合需要即時處理及分析資料的應用程式,例如包裹追蹤工具、導航應用程式或遊戲排行榜。
  • 工作階段儲存:管理電子商務網站或社群媒體平台等網頁應用程式中的使用者工作階段時,需要快速存取使用者偏好設定、登入狀態和購物車內容。有了 Valkey,您就能以快速可靠的方式儲存及擷取工作階段資料。
  • 機器學習:Valkey 的低延遲和向量搜尋功能,使其成為機器學習應用程式的強大資料庫。您可以儲存並快速搜尋向量嵌入 (文字或圖片等資料的數值表示法),執行複雜的相似度搜尋。這項技術可用於即時向使用者推薦類似的產品、文章或媒體。

比較 Valkey 與 Redis

Valkey 最初從 Redis 7.2 分出,因此兩者的程式碼集和部分基本特性和功能相同。Redis 與 Valkey 類似,都是記憶體內鍵/值資料儲存庫,不僅處理量高、支援多種資料結構,兩者也都以高可用性和擴充性聞名。

兩者最主要的差異在於 Valkey 是開放原始碼,以寬容的 BSD 授權發布,因此開發人員可以自由使用、修改軟體及貢獻已力。

2024 年,隨著 Redis Inc. 決定改採限制較多的「可用來源」授權,Valkey 因此誕生。為持續提供社群開放原始碼替代服務,幾位核心 Redis 貢獻者根據最後一版的 Redis 開放原始碼版本,攜手推出 Valkey。

Valkey 採用社群主導的協作開發模式,由 Linux 基金會專案的貢獻者決定發展藍圖和新功能,Google Cloud 等主要雲端供應商也參與其中。

Valkey 8.0 版推出後,Valkey 引擎完成重大升級,著重提升向量搜尋能力、改善叢集管理,以及支援執行多執行緒指令,也就是能透過多個 CPU 核心平行處理指令。

使用 Google Cloud 自行管理 Valkey 部署作業

如需精細控管、自訂或採用特定部署設定,可手動將 Valkey 部署至 Google Cloud 的運算基礎架構,藉此全面掌控作業環境。

  • Compute Engine (VM):直接啟動 Google Compute Engine 執行個體 (VM) 並安裝開放原始碼 Valkey 伺服器。使用者可全權控管設定、資源調度參數和基礎作業系統。
  • Google Kubernetes Engine (GKE):Valkey 可透過 Docker 輕鬆容器化,並以 Pod 或有狀態應用程式的形式部署至 GKE 叢集。這個做法非常適合已採用 Kubernetes 的應用程式,因為您可以使用強大的進階自動調度管理功能。


使用全代管的 Google Cloud Memorystore for Valkey 服務

Memorystore for Valkey 是一項全代管服務,提供高效能、高可用性且可擴充的雲端 Valkey 服務,

具備記憶體內資料庫的特性,並能免除使用者管理基礎架構的營運和財務負擔。

Google Cloud 會處理管理工作負載,包括修補、安全性和資源調度作業,您可以專注於運用即時資料建構應用程式。

  • 全代管:管理 Valkey 執行個體的作業負擔會由 Google 處理,包括佈建、修補和容錯移轉。
  • 高效能:Memorystore for Valkey 採用 Google Cloud 基礎架構,能實現低延遲和高處理量,滿足即時應用程式的嚴苛需求,甚至能在 1 毫秒內存取資料。
  • 可用性:Memorystore 會自動將資料複製到多個可用區,提供高達 99.99% 的服務水準協議。
  • 可擴充:Memorystore 的 Valkey 執行個體可順暢擴充,且過程中不會停機,因此能滿足應用程式的多變需求。
  • 安全無虞:Memorystore 提供完善的安全防護功能,包括虛擬私有雲 (VPC) 連線、全天候監控,以及身分與存取權管理 (IAM)。
  • AI 應用程式的絕佳選擇:Memorystore for Valkey 支援近似最近鄰 (ANN) 向量搜尋和最近鄰 (KNN) 向量搜尋,是生成式 AI 專案的理想低延遲資料儲存庫。

在下一項專案中運用 Memorystore

運用價值 $300 美元的免費抵免額,開始在 Google Cloud 中建構內容。