生活分享

Google Cloud 宣布 Memorystore for Valkey 9.1 正式推出:官方稱 QPS 最高達 3 倍

Google Cloud 宣布其託管快取服務 Memorystore for Valkey 9.1 正式推出。官方稱,它與 Memorystore for Redis Cluster 相比,每秒查詢數(QPS)最高可達 3 倍,並新增資料庫層級存取控制、CLUSTERSCAN 等功能。本文整理這次更新的重點,以及它對開發者、企業與一般使用者的意義。

閱讀時間約 6 分鐘

Google Cloud 宣布 Memorystore for Valkey 9.1 正式推出:官方稱 QPS 最高達 3 倍
圖片:Mokaair (Original editorial artwork)

發生了什麼事

Google Cloud 在官方部落格宣布,Memorystore for Valkey 9.1 已正式推出。該文章由 Google 資深產品經理 Ankit Sud 與軟體工程師 Jacob Murphy 署名。根據 Google Cloud 的說法,這個版本與 Google Cloud 既有的 Memorystore for Redis Cluster 相比,最高可達 3 倍的每秒查詢數。每秒查詢數(QPS)是衡量系統每秒能處理多少次請求的指標,比較時的延遲維持在微秒級,也就是百萬分之一秒的等級。

Valkey 是什麼?Google Cloud 在文中說明,2024 年 Redis Inc. 把 Redis 的授權,從寬鬆的 BSD 開源授權改為雙授權模式。Google Cloud 與其他科技業者因此支持建立 Valkey,作為由 Linux Foundation 管理的開源替代方案。簡單來說,Valkey 是一套把資料放在記憶體中、讀寫速度極快的資料庫,常被用來做網站與應用程式的快取。

Google Cloud 宣布 Memorystore for Valkey 9.1 正式推出:官方稱 QPS 最高達 3 倍
Mokaair 編輯查核流程 · 圖片:Mokaair (Original editorial artwork)
閱讀完整文字說明

消息會先蒐集來源、獨立查核,再交由 Jev 判斷。

Valkey 9.1 改了哪些地方

效能:重新設計執行緒之間的溝通

執行緒是程式裡同時分頭工作的單位;I/O 執行緒負責收發網路資料,主執行緒負責核心處理。根據 Google Cloud 的說明,舊版 Valkey 以輪流分配(round-robin)的方式,把客戶端連線固定分給各個 I/O 執行緒,主執行緒則要不斷檢查待處理清單,才知道哪些工作已經完成。 Valkey 9.1 改用「無鎖」的多佇列訊息架構。無鎖的意思是,執行緒之間傳遞工作時,不必彼此排隊等待。這個架構包含三種互補的佇列,讓空閒的工作執行緒按需要自行領取任務。 官方也表示,新版本採用兩階段動態擴展: - 當主執行緒的 CPU 使用率超過 30% 時,系統會自動啟動第一個背景 I/O 執行緒。 - 之後依佇列中積壓的工作量,增加或減少執行緒數量;閒置時則讓多餘的處理器核心停下來。

安全與管理:更細的存取控制

存取控制清單(ACL)是用來規定「誰能操作哪些資料、執行哪些指令」的規則。Google Cloud 表示,Memorystore for Valkey 近期已支援透過 IAM 設定 ACL,IAM 是 Google Cloud 的身分與存取管理系統。這項功能不另收費,可以把單一政策套用到多個叢集(由多台伺服器組成的資料庫群組),並提供版本化的政策修訂與稽核記錄。 過去,ACL 規則對整個執行個體一體適用。官方稱,Valkey 9.1 可以把使用者的存取範圍限制在特定編號的資料庫。例如,可以讓測試用帳號只能存取非正式環境的資料。

開發者指令:掃描、原子操作與到期時間

  • CLUSTERSCAN:叢集中的資料依 16,384 個「槽位」分散存放在不同節點。Google Cloud 表示,過去要掃描整個叢集,必須逐一查詢每個節點;若掃描期間發生資料搬移,或節點故障、由備援接手(故障轉移),可能會漏掉資料、重複回傳資料或掃描失敗。新指令使用能掌握叢集結構變化的游標,可以依序掃描全部槽位,也可以把槽位分給多個工作程式平行掃描。
  • HGETDEL:雜湊欄位可以理解為一筆資料裡的其中一個欄位。這個指令只需一次網路往返,就能以「原子方式」讀取並刪除該欄位;原子方式是指讀取和刪除一次完成,中間不會被其他操作插入。官方舉例,這適用於只能使用一次的驗證權杖。
  • MSETEX:一次設定多個鍵(資料的名稱),並讓它們共用同一個到期時間。
  • HSETEX:新增 NX 與 XX 兩個條件旗標。NX 代表欄位不存在時才設定,XX 代表欄位已存在時才設定。
Valkey 9.1 主要變更對照(資料來源:Google Cloud 官方部落格)
項目過去做法(據 Google Cloud)Valkey 9.1(據 Google Cloud)
I/O 執行緒分工以輪流方式靜態分配,主執行緒持續檢查清單無鎖多佇列架構,執行緒按需領取工作
執行緒擴展靜態門檻主執行緒 CPU 超過 30% 時啟動,再依佇列積壓增減
ACL 範圍對整個執行個體全域生效可限制到特定編號的資料庫
叢集鍵掃描逐一查詢節點,故障轉移時可能漏掉或重複CLUSTERSCAN 使用可感知拓撲的游標
讀取後刪除讀取欄位後再立即刪除HGETDEL 單次往返原子完成

對一般讀者有什麼影響

大多數人不會直接接觸 Valkey,但這類記憶體資料庫常在背後支撐網站登入狀態、購物車與各種即時服務。Google Cloud 表示,對正在擴展 AI 與微服務、需要服務數百萬同時在線使用者的組織來說,Valkey 特別有吸引力。若官方宣稱的效能提升在實際環境成立,採用這類服務的應用程式,在尖峰時段有機會維持更穩定的反應速度。

另一個值得注意的背景是開源授權。Valkey 的誕生源自 Redis 授權模式的改變。Google Cloud 這次正式推出新版本,顯示大型雲端業者持續投入由 Linux Foundation 管理的開源替代方案。對企業技術團隊而言,資料庫層級的存取控制也有助於分隔正式與測試環境,降低誤操作的風險。

常見問題

Valkey 和 Redis 有什麼關係?

根據 Google Cloud 的說明,2024 年 Redis Inc. 將授權從 BSD 開源授權改為雙授權模式。之後,Google Cloud 與其他科技業者支持建立 Valkey,作為由 Linux Foundation 管理的開源替代方案。

「3 倍 QPS」是跟什麼比較?

Google Cloud 表示,這是 Memorystore for Valkey 9.1 與其 Memorystore for Redis Cluster 的比較:在微秒級延遲下,前者的每秒查詢數最高可達後者的 3 倍。這是官方數據,並非獨立測試結果。

新的存取控制要額外付費嗎?

Google Cloud 表示,Memorystore for Valkey 的 ACL 功能不另收費。

一般使用者需要做什麼嗎?

不需要。這是雲端服務供應商針對開發者與企業推出的更新,一般使用者不需採取任何行動。是否採用,應由技術團隊依自身需求評估。

查看同分類最新消息

最新旅遊情報攻略

資料來源

生活分享