Deno 推出高性能键值数据库 Deno KV 简讯

2023-05-02 10:38:29 来源:OSCHINA

Deno 团队宣布推出 Deno KV,并称其是具备强一致性的键值数据库,支持在全局范围复制以在全球 35 个地区实现低延迟读取。

Deno KV 重要特性包括:


(相关资料图)

支持在本地运行或托管

Deno KV 支持无缝集成到开源 Deno runtime 中,允许在本地运行它或将其部署为零配置的托管服务。

在本地运行的时候,Deno KV 由 SQLite 提供支持,为本地开发、测试或单区域生产系统提供轻量级且易于使用的解决方案。

当将应用程序部署到 Deno Deploy 时,Deno KV 数据库会自动由 FoundationDB 提供支持。该托管解决方案由 Deno 公司运营,无需开发者手动配置或维护即可确保高性能和可靠性。

简单但强大

Deno KV 专为 JavaScript 设计,可以存储任何 JavaScript 结构化的可序列化值,例如对象、数组、BigInts、日期等。

const kv = await Deno.openKv();const key = ["users", crypto.randomUUID()];const value = { name: "Alice", created: new Date() };await kv.set(key, value);const result = await kv.get(key);console.log(result.value);// { name: "Alice", created: 2023-05-01T09:24:07.620Z }

比如使用kv.list()操作列出与特定选择器匹配的所有键。在下面的示例中,所有以特定前缀开头的键都被选中。

await kv.set(["users", "alice"], { birthday: "January 1, 1990" });await kv.set(["users", "sam"], { birthday: "February 14, 1985" });await kv.set(["users", "taylor"], { birthday: "December 25, 1970" });// List out all entries with keys starting with `["users"]`const iter = kv.list({ prefix: ["users"] });for await (const entry of iter) {  console.log(entry.key);  console.log(entry.value);}

详情查看文档。

原子性事务 (Atomic transactions)

Deno KV 使用kv.atomic()创建跨多个键的强一致性事务,这些键在默认情况下可立即持久化:

const kv = await Deno.openKv();const change = 10;const bob = await kv.get(["balance", "bob"]);const liz = await kv.get(["balance", "liz"]);if (liz.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 是一个强一致性数据库,提供外部一致性,包括:

可串行化 (Serializability):事务的最高级别隔离,确保并发事务执行导致系统状态等同于这些事务的顺序。 线性化 (Linearizability):保证诸如读取和写入之类的操作立即出现并实时发生。写入操作完成后,所有后续读取操作都会返回更新后的值,从而确保强大的实时排序。
// Read with eventual consistency from the nearest regionawait db.get(["my-key"], { consistency: "eventual" });// Read with strong consistency from the primary regionawait db.get(["my-key"], { consistency: "strong" });

使用示例

下面代码使用 Deno KV 创建了全局一致的持久计数器:

import { serve } from "/std@0.155.0/http/server.ts";const db = await Deno.openKv();serve(async (req: Request) => {  await db.atomic().sum(["views"], 1n).commit();  const res = await db.get(["views"]);  const views = res.value.value;  return new Response(`Views: ${views}`);});

目前要体验 Deno KV,需要排队等候 waitlist 通过:https://deno.com/kv。

标签

郴州安仁文旅项目集中开工 总投资1000万元

3月16日,安仁县举行文旅项目集中开工活动,县委书记王洪灿在开工仪式上宣布:湘南起义旧址群——朱毛井...

2022-03-20 15:40:46

2022年郴州计划重点推进文旅项目101个 总投资354亿元

3月16日,我市举行全市文旅项目和城市大提质大融城项目集中开工仪式,市委书记吴巨培宣布项目开工。郴州...

2022-03-20 15:39:41

宿州泗县深入推进文旅融合发展 擦亮城市品牌

近年来,泗县以争创安徽省文化旅游名县为目标,深入推进文旅融合发展,努力擦亮水韵泗州 运河名城城市...

2022-03-20 15:38:59

汽车零部件产业“领头羊” 锦州力争一季度“开门红”

3月16日,记者从锦州汽车零部件产业的领头羊——锦州万得集团获悉,今年前两个月,企业订单充足,正铆足...

2022-03-20 15:37:41

油价或有望冲击“九元”大关 宁波新能源汽车市场如何

新一轮国内成品油调价窗口于3月17日24时开启,油价或有望冲击九元大关。前一天晚上11点,鄞州区不少加油...

2022-03-20 15:34:38

从水塘到“云”端 全国最大高邮鸭养殖基地实现智慧养殖

随着新一代数字技术的蓬勃发展,以新兴技术推动现代化新农村建设正成为助力乡村振兴的重要手段。1个人能...

2022-03-20 15:33:17

淡季不忘引流 京郊民宿市场有望迎来回暖

旅游淡季中的京郊民宿有望成为市场中最先复苏的板块。3月17日,北京商报记者调查发现,虽然正值旅游淡季...

2022-03-20 15:32:01

镇江乡村一二三产业融合发展 闯出“镇江之路”

从烹饪江鲜河豚的个体小饭店到规模化的江岛乡村旅游产业集群,从白兔草莓丁庄葡萄的单个农户种植到茅山...

2022-03-20 15:31:11

总投资30亿元 盐城东台8个重大产业项目相继开工

总投资30亿元的精密电子元器件项目、同益电子项目,总投资10亿元的金利美精密组件项目、天永智能设备项...

2022-03-20 15:30:13

去年南京规上信息软件业企业实现营收7577.28亿元 同比增长10.3%

市统计局最新统计数据显示,2021年,我市规模以上信息软件业企业共1662家,较上年同期增加321家,实现营...

2022-03-20 15:28:57
x 广告
x 广告

Copyright  2015-2022 亚太粮油网版权所有  备案号:沪ICP备2020036824号-11   联系邮箱: 562 66 29@qq.com