从缓存中获取值

适用于:所有 API 管理层级

使用 cache-lookup-value 策略,可以通过密钥执行缓存查找,并返回缓存的值。 密钥的值可以是任意字符串,通常使用策略表达式来提供密钥。

注意

此策略必须已设置相应的在缓存中存储值策略。

重要

内置缓存是易失性的,由同一 API 管理服务中同一区域的所有单元共享。

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略

策略语句

<cache-lookup-value key="cache key value"
    default-value="value to use if cache lookup resulted in a miss"
    variable-name="name of a variable looked up value is assigned to"
    caching-type="prefer-external | external | internal" />

属性

属性 说明 需要 默认
caching-type 在以下属性值之间进行选择:
- internal,表示可使用内置的 API 管理缓存
- external 使用外部缓存,如- 中所述;
- prefer-external 如果外部缓存已配置,则使用外部缓存,否则使用内部缓存。

不允许使用策略表达式。
prefer-external
default-value 在缓存密钥查找未命中的情况下,会分配给变量的值。 如果未指定此属性,则会分 null。 允许使用策略表达式。 null
关键值 要在查找中使用的缓存密钥值。 允许使用策略表达式。 不适用
variable-name 在查找成功的情况下,会向其分配查找值的上下文变量的名称。 如果查找未命中,则不会设置该变量。 不允许使用策略表达式。 不适用

使用情况

  • 策略节:入站、出站、后端、错误时
  • 策略范围:全局、工作区、产品、API、操作
  • 网关:经典、消耗、自承载

使用注意事项

  • API 管理仅缓存对 HTTP GET 请求的响应。
  • 此策略只能在策略部分中使用一次。
  • 策略片段中不支持此策略。
  • 建议在任何缓存查找后立即配置 速率限制 策略(或 按键速率限制 策略)。 这有助于防止后端服务在缓存不可用时过载。

示例

此示例演示如何使用 cache-lookup-value 策略从缓存中检索用户配置文件。 缓存查找的键是使用策略表达式构造的,该表达式将字符串与上下文变量的值组合在 enduserid 一起。

注意

缓存查找后添加的 速率限制 策略有助于限制在缓存不可用时阻止后端服务重载的调用数。

请参阅 缓存存储值 示例,将用户配置文件存储在缓存中。

<cache-lookup-value
    key="@("userprofile-" + context.Variables["enduserid"])"
    variable-name="userprofile" />
<rate-limit calls="10" renewal-period="60" />

有关此策略的详细信息和示例,请参阅 Azure API 管理中的自定义缓存

后续步骤

有关使用策略的详细信息,请参阅: