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

除了利用内置缓存外,Azure API 管理还允许将响应缓存在外部 Redis 兼容缓存中,例如 Azure Cache for Redis。

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

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

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

Bring your own cache to APIM

学习内容:

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

先决条件

要完成本教程,需要:

创建 Azure Cache for Redis

本部分介绍了如何在 Azure 中创建用于 Redis 的 Azure 缓存。 如果你已有 Azure Cache for Redis 或其他与 Redis 兼容的缓存(无论是在 Azure 内部还是外部),则可以跳到下一部分。

  1. 若要创建缓存,请登录到 Azure 门户并选择“创建资源” 。

    Create a resource is highlighted in the left navigation pane.

  2. 在“新建”页上选择“数据库”,然后选择“Azure Cache for Redis”。

    On New, Databases is highlighted, and Azure Cache for Redis is highlighted.

  3. 在“新建 Redis 缓存”页上配置新缓存的设置。

    设置 选择值 说明
    订阅 单击下拉箭头并选择你的订阅。 要在其下创建此新的 Azure Cache for Redis 实例的订阅。
    资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。
    DNS 名称 输入唯一名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母或连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名是 <DNS name>.redis.cache.chinacloudapi.cn
    位置 单击下拉箭头并选择一个位置。 选择使用缓存的其他服务附近的区域
    缓存类型 下拉并选择一个 此层决定可用于缓存的大小、性能和功能。 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述
  4. 选择“网络”选项卡,或选择“网络”按钮(位于页面底部) 。

  5. 在“网络”选项卡中,选择你的连接方法。

  6. 选择“下一步: 高级”选项卡,或选择页面底部的“下一步: 高级”按钮,以查看“高级”选项卡。

    Screenshot showing the Advanced tab in the working pane and the available option to select.

    • 对于“基本”或“标准”缓存,请切换非 TLS 端口的选项。 还可以选择是否要启用“Microsoft Entra 身份验证”。
    • 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。 还可以选择是否要启用“Microsoft Entra 身份验证”。
  7. 选择“下一步: 标记”选项卡,或选择页面底部的“下一步: 标记”按钮 。

  8. 或者,在“标记”选项卡中,如果希望对资源分类,请输入名称或值。

  9. 选择“查看 + 创建” 。 随后你会转到“查看 + 创建”选项卡,Azure 将在此处验证配置。

  10. 显示绿色的“已通过验证”消息后,选择“创建”。

创建缓存需要一段时间。 可以在 Azure Cache for Redis 的“概述”页上监视进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。

将 Redis 缓存部署到 Kubernetes

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

添加外部缓存

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

Screenshot that shows how to add an external Azure Cache for Redis in Azure API Management.

“使用位置”设置

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

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

  • 一个自承载网关位置

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

    用于“默认”的缓存将由用于特定匹配区域或位置的缓存重写。

注意

可以为多个 API 管理实例配置同一外部缓存。 API 管理实例可位于相同区域,也可位于不同区域。 在共享多个实例的缓存时,必须在“使用位置”设置中选择“默认”。

从同一订阅中添加用于 Redis 的 Azure 缓存

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 从左侧的菜单中选择“外部缓存”选项卡。
  3. 选择“+ 添加”按钮。
  4. 从“缓存实例”下拉字段中选择你的缓存。
  5. “使用位置”下拉字段中选择“默认”或指定所需的区域。
  6. 选择“保存”。

添加托管在当前 Azure 订阅外部或 Azure 外部(后者为一般情况)的与 Redis 兼容的缓存

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 从左侧的菜单中选择“外部缓存”选项卡。
  3. 选择“+ 添加”按钮。
  4. 从“缓存实例”下拉字段中选择“自定义”。
  5. “使用位置”下拉字段中选择“默认”或指定所需的区域。
  6. 在“连接字符串”字段中提供 Azure Cache for Redis(或与 Redis 兼容的缓存)连接字符串。
  7. 选择“保存”。

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

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 从左侧的菜单中选择“外部缓存”选项卡。
  3. 选择“+ 添加”按钮。
  4. 从“缓存实例”下拉字段中选择“自定义”。
  5. “使用位置”下拉字段中指定所需的自承载网关位置或“默认”。
  6. 在“连接字符串”字段中提供你的 Redis 缓存连接字符串。
  7. 选择“保存”。

使用外部缓存

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

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

后续步骤