创建全局、低延迟的键值数据存储。
Available on Free and Paid plans
Workers KV 是一种数据存储,允许你全局存储和检索数据。使用 Workers KV,你可以构建支持高读取量、低延迟的动态高性能 API 和网站。
例如,你可以将 Workers KV 用于:
- 缓存 API 响应。
- 存储用户配置 / 偏好。
- 存储用户身份验证详细信息。
从 Cloudflare Workers 使用 Workers Bindings(绑定) 访问 Workers KV 命名空间,或从外部应用使用 REST API:
export default {
async fetch(request, env, ctx): Promise<Response> {
// write a key-value pair
await env.KV.put('KEY', 'VALUE');
// read a key-value pair
const value = await env.KV.get('KEY');
// list all key-value pairs
const allKeys = await env.KV.list();
// delete a key-value pair
await env.KV.delete('KEY');
// return a Workers response
return new Response(
JSON.stringify({
value: value,
allKeys: allKeys,
}),
);
},
} satisfies ExportedHandler<{ KV: KVNamespace }>;{
"$schema": "node_modules/wrangler/config-schema.json",
"name": "<ENTER_WORKER_NAME>",
"main": "src/index.ts",
"compatibility_date": "2025-02-04",
"observability": {
"enabled": true
},
"kv_namespaces": [
{
"binding": "KV",
"id": "<YOUR_BINDING_ID>"
}
]
}请参阅完整的 Workers KV binding API 参考。
curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces/$NAMESPACE_ID/values/$KEY_NAME \
-X PUT \
-H 'Content-Type: multipart/form-data' \
-H "X-Auth-Email: $CLOUDFLARE_EMAIL" \
-H "X-Auth-Key: $CLOUDFLARE_API_KEY" \
-d '{
"value": "Some Value"
}'
curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces/$NAMESPACE_ID/values/$KEY_NAME \
-H "X-Auth-Email: $CLOUDFLARE_EMAIL" \
-H "X-Auth-Key: $CLOUDFLARE_API_KEY"const client = new Cloudflare({
apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted
apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted
});
const value = await client.kv.namespaces.values.update('<KV_NAMESPACE_ID>', 'KEY', {
account_id: '<ACCOUNT_ID>',
value: 'VALUE',
});
const value = await client.kv.namespaces.values.get('<KV_NAMESPACE_ID>', 'KEY', {
account_id: '<ACCOUNT_ID>',
});
const value = await client.kv.namespaces.values.delete('<KV_NAMESPACE_ID>', 'KEY', {
account_id: '<ACCOUNT_ID>',
});
// Automatically fetches more pages as needed.
for await (const namespace of client.kv.namespaces.list({ account_id: '<ACCOUNT_ID>' })) {
console.log(namespace.id);
}有关从外部应用使用 REST API 的详细信息,请参阅完整的 Workers KV REST API 和 SDK 参考,其中包含适用于外部 TypeScript、Python 或 Go 应用的预生成 SDK。
键值存储
了解 Workers KV 如何存储和检索数据。
绑定(binding)
绑定(binding)允许 Workers 与 Cloudflare 开发者平台上的资源交互,包括 R2、Durable Objects 和 D1。
R2
Cloudflare R2 Storage 允许开发者存储大量非结构化数据,而无需支付典型云存储服务相关的高昂出口带宽费用。
Durable Objects
Cloudflare Durable Objects 允许开发者访问可扩展的计算和永久、一致的存储。
D1
D1 基于 SQLite 构建,是 Cloudflare 首个可查询的关系型数据库。通过导入数据或在 Worker 或 API 中定义表和编写查询来创建完整数据库。