跳到主要内容

Deno KV Beta
全球应用的全球数据库

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

设置?不用了谢谢

在任何 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";

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

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

远程连接到任何 KV 实例。

简化的本地开发

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

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

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

源码在线预览

Pixelpage
  • 持久画布状态
  • 多人协作
  • 使用 BroadcastChannel 的实时同步

源码在线预览

Todo
  • Zod schema 验证
  • 使用 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/M)
    • KV 写入单元/月 (1KiB)
      900,000(之后 $2.50/M)
    • 数据库区域数量
      自定义
    • 选择您的写入区域
  • 企业版

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

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