缓存和持久保留

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

Apigee 持久保留功能包括缓存,键值映射和属性集。如果您使用的是 Apigee Hybrid,则可以使用 Kubernetes Secret 来保留敏感数据。

功能 使用
缓存 使用通用缓存政策,您可以保留代理在多个请求/响应会话中所需的任何对象。您还可以使用 ResponseCache 政策来缓存后端资源的响应。当后端数据仅定期更新时,响应缓存特别有用。ResponseCache 政策可减少对后端数据源的调用。
键值映射 键值映射 (KVM) 为可能会定期更改的数据提供常规运行时存储。例如:用户会话数据、购物车等。KVM 条目可以加密。
属性集 属性集非常适合存储不经常更改的配置数据。
Kubernetes Secret (仅限 API Hybrid)使用 Secret 存储敏感数据,例如用户凭据。

缓存

当 API 代理流中执行缓存政策时,系统会动态创建环境范围的缓存资源。缓存政策包括 PopulateCache 政策LookupCache 政策InvalidateCache 政策ResponseCache 政策

缓存的内容在内存 (L1) 中保留一秒钟。您无法更改此配置。一秒钟后,缓存对象会被放入数据库 (L2) 中,直到缓存过期为止。如需了解详情,请参阅内存中永久性缓存级别。您可以通过缓存政策的配置管理缓存详细信息,例如过期时间。提供的 Apigee API 允许您列出和删除缓存资源。

使用缓存政策时,您可以通过配置缓存键来确保缓存值键的唯一性。缓存键以及您可以配置的其他值提供了一种可靠的方式,让您能够取出与所放入的数据相同的数据。 缓存大小和可用性受某些限制的约束。

您可能希望使用缓存来执行以下操作:

  • 减少延迟和流量。请求可以在更短的时间内得到满足,并有重复使用表示法。
  • 跨事务保留数据。您可以存储会话数据,以便在 HTTP 事务中重复使用。
  • 支持安全性。限制对缓存条目的访问权限,以便只能在特定环境中访问或由特定 API 代理访问。

后端响应缓存

您可以使用 ResponseCache 政策来缓存后端资源的响应。

当后端数据仅定期更新时,这特别有用。ResponseCache 政策可减少对后端数据源的调用。

通过 ResponseCache 政策,您还可以让 Apigee 查看某些 HTTP 响应缓存标头,并根据标头指令执行操作。例如,对于来自后端目标的响应,Apigee 支持 Cache-Control 标头。此标头可用于控制缓存响应的最长存在时间等等。如需了解详情,请参阅对 HTTP 响应标头的支持

短期通用缓存

使用通用缓存政策,您可以保留代理在多个请求/响应会话中所需的任何对象。

借助 PopulateCache 政策LookupCache 政策InvalidateCache政策,您可以在运行时填充、检索和刷新缓存数据。

例如,您可以临时存储:

  • 会话管理的会话 ID。
  • 出站调用的凭据(例如 API 密钥或 OAuth 访问令牌)。
  • 必须对应用进行分页的响应内容。

在运行时,您的缓存政策会在代理变量与您指定的已配置缓存之间复制值。将值放入缓存后,系统会将其从您指定的变量复制到缓存中。当从缓存中检索它时,会将其复制到变量中以供您的代理使用。

如需查看包含代码的示例,请参阅示例:通用缓存

使用 Apigee API 管理缓存

您可以使用缓存 API 列出和删除缓存。

键值映射 (KVM) 的长期持久保留

如需无限期地存储加密或未加密的结构化数据,您可以创建和填充包含任意键/值对的键值对映射 (KVM)。例如,您可以存储:

  • 将 IP 地址与国家/地区代码相关联的映射。
  • 允许/拒绝访问的 IP 地址列表。
  • 将长网址与短网址相关联的映射。
  • 特定于环境的数据,例如配额计数和 OAuth 令牌到期时间。

KVM 可以具有以下三种范围之一:组织、环境、apiproxy。例如,如果键/值对将用于组织中的所有 API,则在组织范围内创建 KVM;如果只有特定的 API 代理有权访问键/值,请在 apiproxy 范围内创建 KVM。如需了解详情,请参阅使用键值映射

属性集

属性集是存储数据的键/值对的自定义集合。API 代理可以在执行时检索此数据。

通常,您使用属性集来存储不应硬编码到 API 代理逻辑中的不到期的数据,例如配置数据。您可以访问代理中的任何位置的属性集数据,在该代理中可以访问流变量

属性集的一个常见用例是提供与一个环境或其他环境相关联的值。您可以使用特定于测试环境中运行的代理的配置值创建环境范围的属性集,并为生产环境创建另一个设置。

如需了解详情,请参阅使用属性集

Kubernetes Secret

(仅限 Apigee Hybrid)如果您已经在自定义保险柜中为敏感数据使用 Kubernetes 进行 Secret 管理,则可能需要考虑使用Kubernetes Secret。与 KVM 数据一样,您可以访问 API 代理流变量中的 Kubernetes Secret 数据。如需了解详情,请参阅在 Kubernetes Secret 中存储数据