deno.com
在此頁面上

Deno Deploy 上的 KV

Deno Deploy 現在提供內建的無伺服器鍵值資料庫,稱為 Deno KV。

此外,Deno KV 也可在 Deno 本身中使用,並使用 SQLite 作為其後端。自 Deno v1.32 起,此功能已可透過 --unstable 標記存取。深入瞭解Deno KV

一致性 Jump to heading

預設情況下,Deno KV 是一個強一致性資料庫。它提供最強形式的強一致性,稱為外部一致性,這表示

  • 序列化性:這是交易的最高隔離等級。它確保多個交易並行執行所產生的系統狀態,會與交易依序一個接一個執行的狀態相同。換句話說,可序列化交易的最終結果等同於這些交易的某種順序。
  • 線性化性:此一致性模型保證操作(例如讀取和寫入)看起來是即時且即時發生的。一旦寫入操作完成,所有後續的讀取操作都會立即傳回更新後的值。線性化性確保操作的強即時排序,使系統更可預測且更容易理解。

同時,您可以選擇透過在個別讀取操作上設定 consistency: "eventual" 選項來放寬一致性限制。此選項允許系統從全域複本和快取提供讀取,以實現最小延遲。

以下是我們頂級區域中觀察到的延遲數字

區域 延遲(最終一致性) 延遲(強一致性)
北維吉尼亞 (us-east4) 7ms 7ms
法蘭克福 (europe-west3) 7ms 94ms
荷蘭 (europe-west4) 13ms 95ms
加州 (us-west2) 72ms 72ms
香港 (asia-east2) 42ms 194ms

分散式佇列 Jump to heading

無伺服器分散式佇列在 Deno Deploy 上可用。請參閱Deno Deploy 上的佇列以瞭解更多詳細資訊。

從 Deno Deploy 外部連線至託管資料庫 Jump to heading

您可以從 Deno Deploy 外部的 Deno 應用程式連線至您的 Deno Deploy KV 資料庫。若要開啟託管資料庫,請將 DENO_KV_ACCESS_TOKEN 環境變數設定為 Deno Deploy 個人存取權杖,並將資料庫的 URL 提供給 Deno.openKv

const kv = await Deno.openKv(
  "https://api.deno.com/databases/<database-id>/connect",
);

請查看文件,以瞭解連線至遠端 KV 資料庫的協定規格

資料分佈 Jump to heading

Deno KV 資料庫會跨至少 6 個資料中心進行複寫,涵蓋 3 個區域(美國、歐洲和亞洲)。一旦寫入操作提交,其變更會持久儲存在主要區域內至少兩個資料中心中。非同步複寫通常會在 10 秒內將這些變更傳輸到其他兩個區域。

此系統旨在容忍大多數資料中心層級的故障,而不會發生停機或資料遺失。復原點目標 (RPO) 和復原時間目標 (RTO) 有助於量化系統在各種故障模式下的復原能力。RPO 代表以時間衡量的最大可接受資料遺失量,而 RTO 則表示在故障後將系統還原至正常運作所需的最大可接受時間。

  • 主要區域中一個資料中心遺失:RPO=0(無資料遺失),RTO<5 秒(系統在 5 秒內還原)
  • 複本區域中任意數量的資料中心遺失:RPO=0,RTO<5 秒
  • 主要區域中兩個或更多資料中心遺失:RPO<60 秒(少於 60 秒的資料遺失)

您是否找到所需的資訊?

隱私權政策