【问题标题】:Azure API Management proactively invalidate and refresh cacheAzure API 管理主动失效和刷新缓存
【发布时间】:2018-08-03 18:58:00
【问题描述】:

在 APIM 中,是否可以使用策略主动使缓存无效并刷新缓存,从而使用户永远不会遇到缓存未命中并且最新数据填充到缓存中?我们有一个请求需要一段时间才能返回,所以我们不想让客户等待它。

有一个基于 post/put 操作使缓存失效的请求,这将是完美的:https://feedback.azure.com/forums/248703-api-management/suggestions/13428855-invalidate-cache-based-on-other-operations

很遗憾,它已有 2 年历史,仍在审核中。

【问题讨论】:

    标签: azure azure-api-management


    【解决方案1】:

    使用自定义缓存来存储和更新值。您可以使用 Azure 函数来安排一个计时器来调用 APIM 中的 api 来更新缓存。

    https://docs.microsoft.com/en-us/azure/api-management/api-management-sample-cache-by-key

    【讨论】:

    • 如果缓存使用滑动过期而不是绝对过期,这将起作用。你知道 APIM 是不是这样?
    • 实际上,如果它是滑动到期,如果它与一个在到期前调用它的计时器配对,缓存将永远不会更新,对吧?我们还需要一种方法来使缓存无效。
    • cache-store-value 策略按绝对过期时间工作。您必须使用 cache-remove-value 策略来删除缓存以使其失效。步骤 1. Timer pings api - 每 4 分钟刷新一次缓存。 2. refreshCache api 使用 cache-store-value 策略更新所有键,持续时间 5 分钟。 3. 如果 POST/PUT 调用发生需要缓存失效。可以为这些操作添加策略以更新(刷新)或删除缓存键。
    • 谢谢,JJ,我试试看。
    猜你喜欢
    • 2011-08-29
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2014-07-06
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多