Skip to main content
On this page

Deno KV

Deno KV 是 Deno Deploy 支持的一种键值数据库引擎选项,属于 databases 功能的一部分。借助 Deno Deploy 早期访问(EA)中的新功能 timelines,你的应用可以完全控制所使用的 Deno KV 数据库(例如,一个用于生产环境,每个 Git 分支一个),确保不同环境间的数据隔离和安全。

与其他数据库引擎类似,代码会自动连接到对应环境的正确数据库——无需手动检测时间线或命名数据库。

入门指南 Jump to heading

添加 KV 数据库 Jump to heading

进入你的组织面板,点击导航栏中的“数据库”。点击“Provision Database”,选择 Deno KV 作为数据库引擎,填写一个易记的名称,然后保存。

将应用连接到 KV 数据库 Jump to heading

拥有数据库实例后,可以为应用分配数据库。从数据库实例列表中,点击想使用数据库旁的“Assign”,然后从下拉菜单中选择应用。

Deno Deploy 会自动为每个时间线创建独立的数据库。在开发和测试阶段,这可以保护你的生产数据安全。你可以监控配置过程,等待状态变为“Connected”。如遇错误,点击“Fix”重试。

从 Deno Deploy 连接 Jump to heading

一旦你为应用分配了数据库,从代码中连接就很简单了。 Deno Deploy 会根据当前环境自动设置到正确数据库的连接——无需数据库 ID 或访问令牌。

示例 Jump to heading

以下是在你的 Deno Deploy 应用中连接 Deno KV 的示例:

const kv = await Deno.openKv();

Deno.serve(async () => {
  const res = await kv.get<number>(["requests"]);
  const requests = res.value + 1;
  await kv.set(["requests"], requests);
  return new Response(JSON.stringify(requests));
});

有关 Deno KV 及其功能的详细信息,请参阅 Deno KV 文档

从 Deno Deploy 外部连接 Jump to heading

你也可以在本地 Deno CLI 应用中使用 URL 连接器打开受管理的 Deno KV 数据库:

const kv = await Deno.openKv(
  "https://api.deno.com/v2/databases/<Database ID>/connect",
);

<Database ID> 替换为你要连接的数据库 ID。每个数据库的 ID 都会显示在 Deno Deploy 控制台中数据库实例页面的数据库表格里。

通过将个人或组织访问令牌设置为 DENO_KV_ACCESS_TOKEN 环境变量来验证连接:

>_
export DENO_KV_ACCESS_TOKEN=ddo_...

可以在 Deno Deploy 控制台中的组织设置页面创建组织访问令牌。

取消分配 KV 数据库 Jump to heading

如果你从应用中移除数据库分配,该应用将无法访问该数据库。但数据库及其数据依然保留,可以以后重新分配给其他应用或同一应用。将鼠标悬停在数据库列表中已分配应用名称上,点击“取消应用分配”图标即可取消分配。

数据分布和 GDPR Jump to heading

Deno KV 数据库会在主区域北弗吉尼亚(us-east4)至少三个数据中心之间进行复制。一旦写操作提交,其变更会在主区域的数据中心法定数量内被持久存储,且在欧洲和亚洲设有只读副本。

因此,写入 KV 的数据会存储并传输经过美国。对于要求仅限欧盟数据驻留或严格符合 GDPR 规定的工作负载,Deno KV 目前不适用。数据在传输和静态时均被加密,且 KV 在每个项目间隔离,但我们目前不提供专门针对 KV 的正式 GDPR 或合规文档。

对于有严格 GDPR 合规要求的项目,我们推荐使用我们的Postgres 数据库解决方案,例如我们的Prisma 集成

数据存储 Jump to heading

默认情况下,在本地开发中数据会保存在内存中。你无需在本地使用 KV API 之前创建或分配数据库,并且你的 KV 代码在不同环境中保持一致。若要改为从本地 Deno 程序连接到受管理的 Deno KV 数据库,请参阅 从 Deno Deploy 外部连接

删除数据库实例 Jump to heading

在数据库实例列表中点击 Deno KV 项目旁的“Delete”。与其他数据库引擎不同,此操作会删除所有已有的 Deno KV 数据库及其数据。请务必先备份数据后再操作。

Last updated on

Did you find what you needed?

编辑此页面
Privacy policy