Como acessar o cache no Node.js

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Use o módulo apigee-access para acessar o cache distribuído pelo Edge pela em um aplicativo Node.js. O módulo inclui métodos para obter um armazenar em cache e adicionar, 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. Dentro do Apigee Edge, o cache é distribuído entre todos os nós onde o aplicativo Node.js é executado. É possível gerenciar o cache por meio de uma API Apigee Edge. Com a API, é possível criar recursos de cache manualmente ou usar a recurso padrão. Para ver uma introdução ao armazenamento em cache no Apigee Edge, consulte Ferramentas de persistência no Edge (em inglês). Para saber mais sobre o cache distribuído, consulte Exemplo: uso geral armazenamento em cache.

Para conferir uma introdução ao módulo apigee-access e a outros recursos dele, 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 );

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

Parâmetros:

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

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

  • resource: o nome de um "recurso de cache" da Apigee em que dados em cache são armazenados. Os recursos de cache são usados para ajustar a alocação de memória e outros parâmetros. Se não for especificado, um recurso padrão será usado. Se o recurso de cache não existir, o método 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 vistas por todos os aplicativos Node.js na mesmo "ambiente" da Apigee.

    • application: todas as entradas de cache podem ser vistas por todos os caches Node.js que estão do mesmo aplicativo Apigee Edge.

    • exclusive: (padrão) as entradas do cache são vistas apenas por caches Node.js na mesmo aplicativo com o mesmo nome. Esse é o padrão.

  • prefix: se o nome da chave de cache incluir um prefixo, como descritos em Preencher Política de cache e Como trabalhar com chaves de cache, use esse parâmetro para especificá-lo. O Edge adiciona automaticamente um sufixo duplo sublinhado ao do prefixo de destino. 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 um cache. entrada, em segundos. Se não for especificado, o TTL padrão no recurso de cache será usados.

  • timeout: quanto tempo esperar para buscar um resultado do o cache distribuído, em segundos. São os 30 segundos padrão. Aplicativos sensíveis à latência podem reduzir isso para evitar tempos de resposta lentos se a infraestrutura de cache for sobrecarregadas.

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>

colocar

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

Armazenar dados em 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 erro. Para facilitar, objetos serão convertidos em uma string usando "JSON.stringify".

  • ttl (opcional): o tempo máximo de persistência do dados no cache, em segundos. Se não for especificado, um TTL padrão será usado.

  • callback (opcional): se especificada, uma função que será chamado quando os dados estiverem em cache com segurança. Ele será chamado com um objeto Error como o primeiro parâmetro se houver um erro de inserção; caso contrário, será chamado com 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
});

receber

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

Recuperar dados de um cache.

Parâmetros:

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

    Para entradas de cache colocadas em cache por uma política do Apigee Edge (como Preencher política de cache), você precisará criar a chave de cache, inferindo a partir da maneira como a política cria para as entradas. Para fazer isso, você precisa saber como a política está configurada. Como trabalhar com chaves de cache descreve como as chaves de cache são criadas pelas políticas, não especifique valores de string relacionados ao escopo em chamadas do Node.js, o escopo já faz parte contexto.

  • callback (obrigatório): uma função que será chamada quando os dados estão disponíveis. Se houver dados armazenados em cache, eles serão retornados na .

    • error: um objeto de erro. Se houver um erro durante a recuperação do cache, um objeto Error será definido aqui. Caso contrário, será definido como "indefinido".

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

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

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
});

remover

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

Invalidar um item armazenado em cache. Quando 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 que será invalidado.

    Para entradas de cache colocadas em cache por uma política do Apigee Edge (como Preencher política de cache), você precisará criar a chave de cache, inferindo a partir da maneira como a política cria para as entradas. Para fazer isso, você precisa saber como a política está configurada. Como trabalhar com chaves de cache descreve como as chaves de cache são criadas pelas políticas, não especifique valores de string relacionados ao escopo em chamadas do Node.js, o escopo já faz parte contexto.

  • callback (obrigatório): uma função de callback que ser chamado com um objeto Error como o primeiro parâmetro em caso de erro.

Exemplo:

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