跳到主要内容
Deno 2.4 已发布,带来 deno bundle、字节/文本导入、OTel 稳定版等新特性
了解更多

Deno KV 测试版
面向全球应用的全球数据库

在全球范围内毫秒级读取您的数据。通过 ACID 事务享受无缝的数据一致性。使用 Deno CLI 在本地进行开发和测试,KV 已内置其中。

需要设置?不,谢谢

在任何 Deno 程序中,只需一行代码即可打开 KV 存储。

无论您的代码是在本地运行,还是在全球任何一个数据中心运行,都无关紧要。Deno KV 随处可用,零设置,零配置。

为 JavaScript 构建的数据库

Deno KV 专为 JavaScript 和 TypeScript 构建。存储任何 JavaScript 值,从字符串到对象,无需担心序列化。

直观的基于 Promise 的 API 让数据的存储、检索和删除变得轻而易举。

const kv = await Deno.openKv();

const key = ["users", crypto.randomUUID()];
const value = { name: "Alice" };
await kv.set(key, value);

const result = await kv.get(key);
result.value; // { name: "Alice" }
轻松扩展

从一个小型项目发展为企业级平台,无需配置、无需预置、无需编排。我们将全权负责。

Deno KV 构建于 FoundationDB 之上,每秒可处理数百万次操作。您知道还有哪些产品构建于 FoundationDB 之上吗?iCloud、Snowflake 等等。

自信地进行事务处理

Deno KV 使用 ACID 事务写入数据,因此您无需担心部分写入或数据不一致问题。即使您同时修改多个键也是如此。

一旦事务提交,数据便立即持久化,因此您可以确保您的数据始终安全。

const kv = await Deno.openKv();
const change = 10;

const bob = await kv.get(["balance", "bob"]);
const liz = await kv.get(["balance", "liz"]);
if (bob.value < change) {
  throw "not enough balance";
}

const success = await kv.atomic()
  .check(bob, liz) // balances did not change
  .set(["balance", "bob"], bob.value - change)
  .set(["balance", "liz"], liz.value + change)
  .commit();
可定制的一致性

通过我们可定制的一致性级别,为您的应用程序找到延迟和一致性之间的最佳平衡。Deno KV 可以适应您的独特需求,让您专注于您的用户。

await kv.get(key, { consistency: "eventual" });

从最近的区域使用 最终一致性 读取。读取速度快,但可能返回过时数据。

await kv.get(key, { consistency: "strong" });

从主区域使用 强一致性 读取。读取速度较慢,但始终返回最新数据。

实时更新监听

您可以监听数据库中给定键的变化,这使得构建新闻源、通知、分析等实时应用程序比以往任何时候都更容易。

const db = await Deno.openKv();

for await (const entries of db.watch([["foo"]])) {
  entries[0].key; // ["foo"]
  entries[0].value; // "bar"
  entries[0].versionstamp; // "0100001dc33546270000"
}
随时随地访问 Deno KV

您可以随意使用 Deno KV,通过独立的开源二进制文件以及远程连接到任何 Deno KV 实例的能力。甚至还有官方 npm 模块,因此您可以在 Node 中访问它。

import { openKv } from "@deno/kv";

使用我们的官方 @deno/kv npm 模块在 Node 中使用 Deno KV。

const kv = await openKv(<KV Connect URL>);

远程连接到任何 KV 实例。

简化的本地开发

使用 Deno CLI 上的 KV,本地开发和部署到生产环境都非常简单。Deno CLI 上的 KV 由 SQLite 提供支持,确保了本地开发期间的一致性和持久性。

不想使用 Deno Deploy?Deno KV 可在任何 VPS 上运行,因此您可以部署到您喜欢的云托管服务。

文档
示例
多人井字棋
  • GitHub 身份验证
  • 保存用户状态
  • 使用 BroadcastChannel 进行实时同步

源码在线预览

像素页面
  • 持久化画布状态
  • 多用户协作
  • 使用 BroadcastChannel 进行实时同步

源码在线预览

待办事项
  • Zod 模式验证
  • 使用 Fresh 构建
  • 使用 BroadcastChannel 进行实时协作

源码在线预览

KV 定价

免费开始,您只需点击几下即可启动您的项目,所需的一切都已备齐

  • 免费版

    • KV 存储
      1 GiB
    • KV 读取单元/月 (4KiB)
      450,000
    • KV 写入单元/月 (1KiB)
      300,000
    • 数据库区域数量
      1
    • 选择您的写入区域
  • 专业版

    • KV 存储
      5 GB (之后 $0.75/GiB)
    • KV 读取单元/月 (4KiB)
      1,300,000 (之后 $1/百万)
    • KV 写入单元/月 (1KiB)
      900,000 (之后 $2.50/百万)
    • 数据库区域数量
      自定义
    • 选择您的写入区域
  • 企业版

    • KV 存储
      自定义
    • KV 读取单元/月 (4KiB)
      自定义
    • KV 写入单元/月 (1KiB)
      自定义
    • 数据库区域数量
      自定义
    • 选择您的写入区域
所有定价信息
开始使用

使用下一代无服务器数据库加速应用开发