Como acessar o cache no Node.js

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

É possível usar o módulo apigee-access para acessar o cache distribuído do Edge em um aplicativo Node.js. O módulo inclui métodos para receber um cache e inserir, receber, e remover dados.

O cache distribuído do Apigee Edge permite armazenar strings ou outros dados. Como a maioria dos caches, ele é um cache usado menos recentemente com um tamanho máximo. No Apigee Edge, o cache é distribuído entre todos os nós em que o aplicativo Node.js é executado. É possível gerenciar o cache por meio de uma API do Apigee Edge. Usando a API, é possível criar recursos de cache manualmente ou usar o recurso padrão. Para uma introdução ao armazenamento em cache no Apigee Edge, consulte Ferramentas de persistência no Edge. Para saber mais sobre o cache distribuído, consulte Exemplo: armazenamento em cache de uso geral.

Para uma introdução ao módulo apigee-access e outros recursos, consulte Como usar o módulo apigee-access.

Métodos


(1) getCache

var cache = apigee.getCache(cacheName);

Procure um cache nomeado e crie-o, se necessário. O cache resultante usa um conjunto predefinido de parâmetros de configuração adequados para a maioria das situações.

Parâmetros :

cacheName : uma string, o nome do cache. (Não o nome do recurso de cache).

Retorna :

Um objeto de cache.

Exemplo :

var apigee = require('apigee-access');
var cache = apigee.getCache('cache');

(2) getCache

var customCache = apigee.getCache(cacheName, options );

Acesse um recurso de cache personalizado especificado em um objeto de configuração. Para informações sobre como criar um recurso de cache, consulte Como criar e editar um cache de ambiente.

Parâmetros :

cacheName : uma string, o nome do cache personalizado. (Não o nome do recurso de cache)

options : um objeto de configuração. O objeto pode estar vazio ou conter os seguintes parâmetros opcionais:

  • resource: o nome de um "recurso de cache" da Apigee em que os dados de cache são armazenados. Os recursos de cache são usados para ajustar a alocação de memória e outros parâmetros de cache Se não for especificado, um recurso padrão será usado. Se o recurso de cache não existir, o método vai gerar um erro.

  • scope: especifica se as entradas de cache são prefixadas para evitar colisões. Os valores válidos são global, application e exclusive.

    • global: todas as entradas de cache podem ser visualizadas por todos os aplicativos Node.js no mesmo "ambiente" da Apigee.

    • application: todas as entradas de cache podem ser visualizadas por todos os caches Node.js que fazem parte do mesmo aplicativo Apigee Edge.

    • exclusive: (padrão) as entradas de cache só são visualizadas por caches Node.js no mesmo aplicativo que têm o mesmo nome. Esse é o padrão.

  • prefix: se o nome da chave de cache incluir um prefixo, conforme descrito na política Preencher cache e em Como trabalhar com chaves de cache, use esse parâmetro para especificá-lo. O Edge adiciona automaticamente um sufixo de sublinhado duplo ao nome do prefixo. Portanto, se uma chave de cache foi criada com o prefixo "UserToken", o prefixo a ser especificado aqui é "UserToken__".

  • defaultTtl: especifica o time to live (TTL) padrão de uma entrada de cache, em segundos. Se não for especificado, o TTL padrão no recurso de cache será usado.

  • timeout: quanto tempo esperar para buscar um resultado do cache distribuído, em segundos. O padrão é de 30 segundos. Os aplicativos sensíveis à latência podem querer reduzir isso para evitar tempos de resposta lentos se a infraestrutura de cache estiver sobrecarregada.

Retorna :

Um objeto de cache personalizado.

Exemplo :

var apigee = require('apigee-access');
var customCache = apigee.getCache('doesNotMatter',
  { resource: 'MyCustomResource', scope: 'global', prefix: 'UserToken'} );
customCache.put("myCacheKey", "xyz");

Isso funciona com uma política LookupCache configurada desta forma:

<LookupCache name="Lookup-Cache-1">
  <CacheKey>
    <Prefix>UserToken</prefix>    
    <KeyFragment>myCacheKey</KeyFragment>
  </CacheKey>
  <CacheResource>MyCustomResource</CacheResource>
  <Scope>Global</Scope>
  <AssignTo>contextVariable</AssignTo>
</LookupCache>

put

cache.put('key', data, ttl, function(error));

Coloque dados em um cache.

Parâmetros :

  • key: (obrigatório) uma string que identifica exclusivamente o item no cache. As chaves de cache são limitadas a um tamanho de 2 KB.

  • data: (obrigatório) uma string, um buffer ou um objeto que representa os dados a serem armazenados em cache. Qualquer outro tipo de dados vai resultar em um erro. Para sua conveniência, objetos serão convertidos em uma string usando "JSON.stringify".

  • ttl: (opcional) o tempo máximo para persistir os dados no cache, em segundos. Se não for especificado, um TTL padrão será usado.

  • callback: (opcional) se especificado, uma função que será chamada quando os dados estiverem seguros no cache. Ela será chamada com um objeto de erro como o primeiro parâmetro se houver um erro de inserção e, caso contrário, será chamada sem parâmetros.

Exemplo :

var apigee = require('apigee-access');
var cache = apigee.getCache();
// Insert a string into cache using the default TTL
cache.put('key1', 'Buenos dias, Mundo!');
// Insert a string into cache using a TTL of 120 seconds
cache.put('key2', 'Hello, World!', 120);
// Insert a string with the default TTL, and get notified when the insert is complete
cache.put('key3', 'Ciao, Mondo!', function(error) {
  // "error" will be falsy unless there was an error on insert
});
// Insert a string with a TTL of 600 seconds, and get notified when the insert is complete
cache.put('key4', 'Hallo Wereld!', 600, function(error) {
  // "error" will be falsy unless there was an error on insert
});

get

cache.get('key', function(error, data));

Recupere dados de um cache.

Parâmetros :

  • key (obrigatório): uma string que identifica exclusivamente o item no cache.

    Para entradas de cache colocadas no cache de uma política do Apigee Edge (como a política Preencher cache), você precisará construir a chave de cache inferindo da maneira específica como a política cria chaves para entradas. Para fazer isso, você precisa saber como a política está configurada. Embora Como trabalhar com chaves de cache descreva como as chaves de cache são criadas por políticas, lembre-se de que não é necessário especificar valores de string relacionados ao escopo. Em chamadas do Node.js, o escopo já faz parte do contexto.

  • callback (obrigatório): uma função que será chamada quando os dados estiverem disponíveis. Se houver dados em cache, eles serão retornados no segundo parâmetro.

    • error : um objeto de erro. Se houver um erro ao recuperar do cache, um objeto de erro será definido aqui. Caso contrário, esse parâmetro será definido como "indefinido".

    • data : os dados recuperados, se houver. Ele será um dos quatro valores:

      • Se uma string foi inserida, ela será uma string.
      • Se um buffer foi inserido, ele será um buffer.
      • Se um objeto foi inserido, ele será uma string que contém a versão JSON do objeto produzido por "JSON.stringify".
      • Se nada for encontrado, ele será "indefinido".

Exemplo :

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.get('key', function(error, data) {
  // If there was an error, then "error" will be set.
  // If error is falsy, "data" is the item that was retrieved:
  //   - undefined, in the case of cache miss, or
  //   - a Buffer, or
  //   - a String
});

remove

cache.remove('key', function(error));

Invalide um item armazenado em cache. Depois que uma chave é invalidada, as solicitações get() subsequentes retornam "indefinido", a menos que outro valor seja inserido.

Parâmetros :

  • key (obrigatório): uma string que identifica exclusivamente o item no cache a ser invalidado.

    Para entradas de cache colocadas no cache de uma política do Apigee Edge (como a política Preencher cache), você precisará construir a chave de cache inferindo da maneira específica como a política cria chaves para entradas. Para fazer isso, você precisa saber como a política está configurada. Embora Como trabalhar com chaves de cache descreva como as chaves de cache são criadas por políticas, lembre-se de que não é necessário especificar valores de string relacionados ao escopo. Em chamadas do Node.js, o escopo já faz parte do contexto.

  • callback (obrigatório): uma função de callback que será chamada com um objeto de erro como o primeiro parâmetro se houver um erro.

Exemplo :

var apigee = require('apigee-access');
var cache = apigee.getCache();
cache.remove('key', function(error) {
});