边缘开发者平台
  • 边缘函数
    • 概述
    • 快速指引
    • 操作指引
      • 函数管理
      • Web调试
      • 触发配置
      • 环境变量
      • Code Replica
    • Runtime APIs
      • addEventListener
      • Cache
      • Cookies
      • Encoding
      • Fetch
      • FetchEvent
      • Headers
      • Request
      • Response
      • Streams
        • ReadableStream
        • ReadableStreamBYOBReader
        • ReadableStreamDefaultReader
        • TransformStream
        • WritableStream
        • WritableStreamDefaultWriter
      • Web Crypto
      • Web standards
      • Images
        • ImageProperties
    • 示例函数
      • 示例概述
      • 301重定向
      • 获取客户端URL信息
      • 基于客户端地理位置的自定义
      • 获取客户端地理位置信息
      • 批量重定向
      • 返回 HTML 页面
      • 返回 JSON
      • Fetch 远程资源
      • 请求头鉴权
      • 修改响应头
      • AB 测试
      • 设置 Cookie
      • 基于请求区域重定向
      • Cache API 使用
      • 缓存 POST 请求
      • 流式响应
      • 合并资源流式响应
      • 防篡改校验
      • m3u8 改写与鉴权
      • 图片自适应缩放
      • 图片自适应 WebP
      • 自定义 Referer 限制规则
      • 远程鉴权
      • HMAC 数字签名
      • 自定义下载文件名
      • 获取客户端 IP
    • 最佳实践
      • 通过边缘函数实现自适应图片格式转换
  • KV Storage
    • Overview
    • Operation Guide

Overview

EdgeOne KV 存储是一个低延迟的键值数据存储服务,数据持久化在少量中心节点中,在被访问时缓存到边缘节点。它针对高读取量场景进行了优化,能够为边缘函数提供快速的数据读取能力。
说明:
KV 存储当前通过白名单开放,如需使用,请 联系我们 申请开通。

工作原理

当您第一次向 KV 写入数据时,数据会直接写入中心节点,不会自动分发到每个边缘节点。客户端发起读取时,EdgeOne 会从最近的边缘节点获取数据。如果该节点已缓存对应的数据,则直接返回。如果缓存未命中,例如首次访问或缓存已过期,系统会从中心节点获取数据,并将其缓存到当前边缘节点。首次访问的延迟会较高,但后续来自同一节点的请求将直接命中缓存,无需再次回源。

当您对 KV 键值对进行修改时,发起写入的边缘节点会立即清除该 Key 的本地缓存,确保该节点后续读取到最新数据。删除键值对时也会立即清除对应 Key 的缓存。

KV 通过缓存实现高性能读取,因此采用最终一致性模型。在发起变更的节点上,变更通常可以立即感知;在其他节点上,已缓存的旧数据需要等待过期后才会更新。默认的缓存时间(TTL)为 60 秒。

基于上述工作原理,KV 适合高频读低频写、对全局访问延迟敏感的业务场景,例如网站配置分发、特性开关、访问控制列表、用户偏好存储等。

核心概念

概念
说明
命名空间
KV 存储的基本管理单元,用于隔离不同业务的键值数据。每个命名空间拥有独立的存储空间。
KV 键值对
命名空间内的数据存储单元,由 Key 和 Value 组成。Key 用于唯一标识一条数据,Value 为对应的数据内容。
服务绑定
将 KV 命名空间与边缘函数关联的配置。通过服务绑定,函数代码可使用指定的变量名称在运行时访问对应的 KV 命名空间。
变量名称
服务绑定时定义的变量名,是函数代码访问 KV 命名空间的入口标识。同一函数内,变量名称不允许重复。

适用场景

场景一:动态配置下发

将业务配置(如灰度比例、功能开关、限流阈值)写入 KV 存储,边缘函数在请求处理时实时读取,实现不需发布代码即可动态调整业务行为。

场景二:用户会话与状态管理

在边缘侧存储用户会话 Token 或状态信息,多个边缘节点均可读取,适用于登录态校验、用户偏好存储等场景。

场景三:黑白名单与规则管理

将 IP 黑白名单、域名规则、风控特征等数据写入 KV 存储,边缘函数在流量入口处直接读取并拦截,降低源站压力。

场景四:A/B 测试与灰度分流

将实验分组配置(如用户分桶规则、页面版本映射)写入 KV 存储,边缘函数在请求入口处读取并按规则将流量路由到不同版本,无需重新部署即可实时调整分流比例。

场景五:静态资源版本管理

将静态资源的版本号或路径映射关系存入 KV 存储,边缘函数在响应时动态替换资源地址,实现快速回滚或热更新,避免因缓存问题导致用户加载旧版本资源。

场景六:API 限流与频控

将用户或 IP 的请求计数及时间窗口信息写入 KV 存储,边缘函数在每次请求时读取并更新计数,超出阈值则直接在边缘侧返回限流响应,无需请求穿透至源站。

场景七:地理位置内容定制

将不同地区对应的内容策略(如语言版本、合规提示、价格体系)写入 KV 存储,边缘函数根据请求来源地区读取对应配置,实现区域化内容差异化下发。

使用限制

限制项
默认值
单站点命名空间数量
10 个
单命名空间存储容量
1 GB
单个 Value 最大值
1 MB
单个 Key 最大长度
512 字节
每个命名空间每日读操作次数
100,000 次/天
每个命名空间每日写操作次数
10,000 次/天
说明:
1. 网站安全加速站点之间的 KV 命名空间支持跨站点引用,暂不支持在 Pages 站点与加速站点之间跨类型调用。
2. 每个命名空间均有每日读写请求次数上限,超出后该命名空间的读写请求将被拒绝;通过边缘函数 Runtime API 或云 API 调用时,将返回LimitExceeded错误,配额将于次日 00:00:00(UTC+8)自动重置。

相关参考