You need to enable JavaScript to run this app.
导航

KV存储

最近更新时间2024.04.09 14:14:16

首次发布时间2023.02.17 19:07:57

KV 存储接口用于在边缘节点写入或读取数据(如物料、配置等)。数据写入后,会自动同步到所有边缘节点。您的函数可以读取并使用存储的数据。
KV 存储基于 Key-Value 存储数据。每条数据由键(Key)和值(Value)组成,Key 和 Value 一一对应。
您在写入数据时可定义数据过期时间 TTL(Time To Live)。过期时间结束后,数据将无法访问。

接口

  • KV.set()
    向指定的存储空间(namespace)添加 key-value 数据。
  • KV.get()
    从某个存储空间(namespace)获取指定数据键(key)对应的数据值(value)。
  • KV.delete()
    从某个存储空间(namespace)中删除指定的 key-value 数据。

KV.set

KV.set() 接口用于向指定的存储空间(namespace)添加 key-value 数据。
调用该接口前,您需要创建一个存储空间。目前您只可以通过边缘函数控制台创建存储空间。相关操作,请参见管理存储空间

使用限流

在每个边缘节点上,每个火山引擎账号对一个存储空间下的一个 Key,每秒最多允许调用1次KV.set()接口。

语法

promise<undefined> KV.set(
    namespace: String, 
    key: String, 
    value: String | ArrayBuffer | ArrayBufferView | ReadableStream, 
    options: Object = {},
)

参数

  • namespace
    数据写入的存储空间的名称。请使用您在边缘函数控制台创建存储空间时所定义的名称。
  • key
    数据的键。key 的大小不超过 512 字节。
  • value
    数据的值。一个 key 对应一个 valuevalue 的大小不超过 5MB。
  • options
    可选设置。仅支持 ttl 字段,用于设置 key 的有效时间,单位为秒。默认值是永久保存。

返回值

该接口会返回一个 promise 对象。

  • 如果数据添加成功,promise 解析为 undefined
  • 如果数据添加失败,promise 解析为 reject

示例

以下示例表示在存储空间(people)下添加一条数据(name, tom)并设置该数据在 100 秒后失效。

await KV.set("people", "name", "tom", {ttl: 100});

KV.get

KV.get() 接口用于从某个存储空间(namespace)获取指定数据键(key)对应的数据值(value)。

语法

promise<value_type> KV.get(
    namespace: String,
    key: String,
    options: Object = {},
)

参数

  • namespace
    数据所属存储空间的名称。
  • key
    数据的键。
  • option
    可选设置。仅支持 type 字段,用于指定返回 value 的格式。可选值包括:readableStreamstringarrayBufferjson。默认值是 stream

返回值

该接口会返回一个 promise 对象。

  • 如果数据获取成功,promise 解析为 type 所指定的类型。
  • 如果数据获取失败,promise 解析为 reject

示例

以下示例表示从存储空间(people)中获取数据键为 name 的数据值并且以 string 格式返回数据值。

const str = await KV.get("people", "name", {type: 'string'});

KV.delete

KV.delete() 接口用于从某个存储空间(namespace)中删除指定的 key-value 数据。

语法

promise<bool> KV.delete(
    namespace: String,
    key: String,
)

参数

  • namespace
    数据所属存储空间的名称。
  • key
    数据的键。

返回值

该接口会返回一个 promise 对象。

  • 如果 key 指定的数据存在,promise 解析为 true;如果 key 指定的数据不存在,promise 解析为 false
  • 如果数据删除失败(如网络异常、限流策略等导致失败),promise 解析为 reject

示例

以下示例表示从存储空间(people)中删除数据键为 name的数据。

const b = await KV.delete("people", "name");