Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Cache API

Última atualização: Jun 29, 2026

A Cache API permite armazenar dados em cache nos nós de borda para garantir respostas mais rápidas em solicitações subsequentes. Configure a duração e o tamanho do cache para controlar as políticas de armazenamento.

Funcionamento

A Cache API integrada do Edge Routines (ER) armazena em cache os dados processados pelo ER ou obtidos do servidor de origem no ESA para reutilização por outras solicitações no mesmo nó. Isso reduz o retrabalho computacional e as solicitações de rede. A figura a seguir ilustra a relação entre o ER e o cache do ESA:How it works

Padrão da API

A Cache API segue a interface padrão Cache sempre que possível. No entanto, como o Edge Routines reutiliza o mecanismo de cache existente do ESA, a semântica não é totalmente consistente.

Definição da API

cache.put(request/string, response)

  • Armazena um objeto Response no Cache.

    • Se a operação put for bem-sucedida, resolve para undefined.

    • Se o mecanismo de Cache falhar, rejeita com uma exceção de erro.

    • Se a cota do mecanismo de Cache for excedida, rejeita com uma exceção de erro.

  • A chave de cache corresponde à URL do objeto de solicitação ou a uma string de URL. Use URLs HTTP. Atualmente, devido ao mecanismo de Cache do ESA, URLs HTTPS não são suportadas.

  • Esta é uma função assíncrona. Use await para garantir a conclusão da operação put .

  • Defina o cabeçalho cache-control no objeto Response para configurar o TTL do cache. O cabeçalho cache-control segue os padrões de cache.

Examples

  • Armazenar conteúdo no Cache.

    async function doPut() {
      await cache.put("http://www.example.com", new Response("Hello World"));
      new Response("Hello World", {headers: [["cache-control", "max-age=10"]]})); 
    }
  • Armazenar conteúdo no Cache e definir o TTL.

    async function doPut() {
      await cache.put("http://www.example.com", new Response("Hello World"));
      await cache.put("http://www.example.com", 
      new Response("Hello World", {headers: [["cache-control", "max-age=10"]]})); 
    }

cache.get(request/string)

  • Recupera um objeto Response usando a request/string especificada como chave. Se o objeto não existir, resolve para undefined.

  • Esta é uma função assíncrona. Use await para garantir a conclusão da operação get.

  • O método get pode não retornar o objeto recém-armazenado, pois o cache utiliza o algoritmo LRU e não garante a disponibilidade permanente do objeto em cache para recuperação.

Examples

  • Usar cache.get para recuperar um objeto Response.

    async function doGet() {
        let resp = await cache.get("http://www.example.com");
    }
  • Analisar o resultado em cache como JSON.

    async function doGet() {
        let resp = await cache.get("http://www.example.com");
        let j = await resp.json();
    }

cache.delete(request/string)

  • Exclua um objeto Response com a chave especificada.

    • Se a exclusão for bem-sucedida, resolve para true.

    • Se a exclusão falhar, resolve para false.

  • Esta é uma função assíncrona. Use await para garantir a conclusão da operação delete.

Example (delete a resource under a key)

async function doDelete() {
  let resp = await cache.delete("http://www.example.com");
  
  if (resp) {
        console.alert("done");
  } else {
        console.alert("failed");
  }
}

Limites de uso

  • Todas as operações da Cache API são subsolicitações que compartilham o limite de subsolicitações do ER. Por padrão, uma única solicitação ER suporta no máximo 32 subsolicitações fetch (esse número pode mudar quando o ER for comercializado). As operações da Cache API compartilham esse limite com fetch. Portanto, o número total de operações cache.put + cache.get + cache.delete + fetch dentro de um único contexto de solicitação não pode exceder 32.

  • As operações cache.put, cache.get e cache.delete possuem controle de concorrência. Para a mesma URL, se uma solicitação executar get enquanto outra executa delete, a operação poderá retornar um status pendente porque várias solicitações simultâneas estarão modificando a mesma chave. Nesse caso, aguarde e tente novamente.

    Nota

    Quando cache.put, cache.get ou cache.delete rejeita para true, isso indica que a operação está sujeita ao controle de concorrência.

Atualização de cache

Atualmente, a Cache API não suporta atualização ativa de cache. Especifique uma duração de cache apropriada usando o parâmetro TTL ao chamar Cache.put().