在 Azure API 管理中使用外部 Redis 兼容缓存

适用于:所有 API 管理层级

除了利用 内置缓存,Azure API 管理还允许在与外部 Redis 兼容的缓存(例如 Azure 托管 Redis)中缓存响应。

使用外部缓存可以避免内置缓存的一些限制:

  • 避免在执行 API 管理更新期间定期清除缓存
  • 更好地控制你的缓存配置
  • 缓存超出 API 管理层级允许的数据量
  • 在 API 管理的消耗层中使用缓存
  • API 管理自承载网关中启用缓存

有关缓存的背景和方案,请参阅 缓存概述

若要更详细地了解缓存,请参阅 API 管理缓存策略Azure API 管理中的自定义缓存

注意

目前无法在工作区中使用此功能。

学习内容:

  • 在 API 管理中添加外部缓存

先决条件

要完成本教程,需要:

用于 Kubernetes 的 Redis 缓存

对于 API 管理自托管网关,缓存需要外部缓存。 为了使缓存操作生效,自承载网关及其所依赖的缓存必须彼此接近,以最大程度地降低查找和存储延迟。 将 Redis 缓存部署到同一个 Kubernetes 群集或附近的单独群集是最佳做法。 了解如何将 Redis 缓存部署到 Kubernetes 群集

添加外部缓存

按照以下步骤在 Azure API 管理中使用外部的与 Redis 兼容的缓存。 可以将缓存限制到 API 管理实例中的特定网关。

显示如何在 Azure API 管理中添加外部 Azure 托管 Redis 缓存的屏幕截图。

从“设置”中使用

配置中的 使用自 设置指定将使用缓存的 API Management 实例的位置。 选择以下方案之一:

  • 托管 API 管理实例的 Azure 区域(或配置的位置之一,前提是你有一个多区域部署)

  • 一个自托管网关位置

  • 默认:将缓存配置为 API 管理实例中的所有网关位置的默认值

    用于 默认 的缓存会被用于特定匹配区域或位置的缓存覆盖。

    例如,请考虑在中国北部 3、中国北部 2 和中国东部 2 区域中托管的 API 管理实例。 配置了两个缓存,一个用于 默认值 ,一个用于 中国北部 2。 在此示例中, 中国北部 2 的 API 管理使用自己的缓存,而其他两个区域则使用 默认 缓存条目。

注意

可以为多个 API 管理实例配置同一外部缓存。 API 管理实例可位于相同区域,也可位于不同区域。 为多个实例共享缓存时,必须在 Use from 设置中选择 Default。

从同一订阅添加 Azure 托管 Redis 实例

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 在左侧菜单中的“部署 + 基础结构”下,选择“外部缓存”。
  3. 选择 + 添加
  4. 从“缓存实例”下拉字段中选择你的缓存。
  5. 在“使用位置”下拉字段中选择“默认”或指定所需的区域。 系统会自动填充“连接字符串”。
  6. 选择“保存”。

注意

默认连接字符串采用格式 <cache-name>:10000,password=<cache-access-key>,ssl=True,abortConnect=False。 API 管理将字符串存储为机密命名值。 如果需要查看或编辑字符串来轮换访问密钥或排查连接问题,请转到 “命名值 ”边栏选项卡。

添加兼容 Redis 的缓存,该缓存托管在当前 Azure 订阅之外,或完全在 Azure 之外

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 在左侧菜单中的“部署 + 基础结构”下,选择“外部缓存”。
  3. 选择 + 添加
  4. 从“缓存实例”下拉字段中选择“自定义”。
  5. 在“使用位置”下拉字段中选择“默认”或指定所需的区域。
  6. “连接字符串 ”字段中输入 Azure 托管 Redis 或 Redis 兼容的缓存连接字符串。
  7. 选择“保存”。

将 Redis 缓存添加到自承载网关

  1. 在左侧菜单中的“部署 + 基础结构”下,选择“外部缓存”。
  2. 选择 + 添加
  3. 从“缓存实例”下拉字段中选择“自定义”。
  4. 在“使用位置”下拉字段中选择“默认”或指定所需的区域。
  5. 在“连接字符串”字段中输入 Redis 缓存连接字符串。
  6. 选择“保存”。

使用外部缓存

添加与 Redis 兼容的缓存后,请在外部缓存中配置缓存策略以启用响应缓存,或配置按键缓存值功能。

有关详细示例,请参阅添加缓存以提高 Azure API 管理中的性能