Accesso alla cache in Node.js

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Puoi utilizzare il modulo apigee-access per accedere alla cache perimetrale distribuita da un'applicazione Node.js. Il modulo include metodi per ottenere una cache e putting, recuperare e rimuovere i dati.

La cache distribuita di Apigee Edge ti consente di archiviare stringhe o altri dati. Come la maggior parte delle cache, si tratta di una cache meno utilizzata di recente con dimensioni massime. All'interno di Apigee Edge, la cache è distribuita tra tutti i nodi in cui viene eseguita l'applicazione Node.js. Puoi gestire la cache tramite un'API Apigee Edge. Utilizzando l'API, puoi creare manualmente risorse della cache o utilizzare la risorsa predefinita. Per un'introduzione alla memorizzazione nella cache su Apigee Edge, vedi Strumenti di persistenza in Edge. Per scoprire di più sulla cache distribuita, consulta Esempio: memorizzazione nella cache per uso generico.

Per un'introduzione al modulo apigee-access e alle sue altre funzionalità, consulta Utilizzo del modulo apigee-access.

Metodi


(1) getCache

var cache = apigee.getCache(cacheName);

Cerca una cache denominata e creala, se necessario. La cache risultante utilizza un set predefinito di parametri di configurazione adatto alla maggior parte delle situazioni.

Parametri:

cacheName: una stringa, il nome della cache. (non è il nome della risorsa cache).

Resi:

Un oggetto cache.

Esempio:

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

(2) getCache

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

Accesso a una risorsa cache personalizzata specificata in un oggetto di configurazione. Per informazioni su come creare una risorsa di cache, consulta Creazione e modifica di una cache di ambiente.

Parametri:

cacheName: una stringa, il nome della cache personalizzata. (non è il nome della risorsa cache)

options - Un oggetto di configurazione. L'oggetto può essere vuoto o contenere i seguenti parametri facoltativi:

  • resource: il nome di una "risorsa cache" Apigee in cui sono archiviati i dati della cache. Le risorse della cache vengono utilizzate per ottimizzare l'allocazione della memoria e altri parametri della cache. Se non specificata, verrà utilizzata una risorsa predefinita. Se la risorsa di cache non esiste, il metodo genera un errore.

  • scope: specifica se le voci della cache hanno un prefisso per evitare collisioni. I valori validi sono global, application e exclusive.

    • global: tutte le voci della cache possono essere visualizzate da tutte le applicazioni Node.js nello stesso "ambiente" Apigee.

    • application: tutte le voci della cache possono essere visualizzate da tutte le cache Node.js che fanno parte della stessa applicazione Apigee Edge.

    • exclusive (valore predefinito) Le voci cache sono visibili solo dalle cache Node.js nella stessa applicazione che hanno lo stesso nome. Questa è l'impostazione predefinita.

  • prefix: se il nome della chiave cache include un prefisso, come descritto in Compilazione del criterio della cache e Utilizzo delle chiavi cache, utilizza questo parametro per specificarlo. Edge aggiunge automaticamente un suffisso di doppio trattino basso al nome del prefisso. Quindi, se una chiave cache è stata creata con il prefisso "UserToken", il prefisso da specificare qui è "UserToken__".

  • defaultTtl: specifica la durata predefinita di una voce della cache, in secondi. Se non specificato, verrà utilizzato il TTL predefinito nella risorsa di cache.

  • timeout: tempo di attesa in secondi per il recupero di un risultato dalla cache distribuita. Il valore predefinito è 30 secondi. Le applicazioni sensibili alla latenza potrebbero ridurre questo problema per evitare tempi di risposta lenti in caso di sovraccarico dell'infrastruttura della cache.

Resi:

Oggetto cache personalizzato.

Esempio:

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

Questo funziona con un criterio LookupCache configurato nel seguente modo:

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

Memorizzare i dati in una cache.

Parametri:

  • key (obbligatorio): una stringa che identifica in modo univoco l'elemento nella cache. Le chiavi cache hanno una dimensione massima di 2 kB.

  • data (obbligatorio): una stringa, un buffer o un oggetto che rappresenta i dati da memorizzare nella cache. Qualsiasi altro tipo di dati causerà un errore. Per praticità, gli oggetti verranno convertiti in una stringa utilizzando "JSON.stringify".

  • ttl (Facoltativo) Il tempo massimo, in secondi, per rendere persistenti i dati nella cache. Se non specificato, verrà utilizzato un TTL predefinito.

  • callback (Facoltativo) Se specificato, una funzione che verrà chiamata quando i dati si trovano al sicuro nella cache. Verrà chiamata con un oggetto Error come primo parametro in caso di errore di inserimento, altrimenti verrà richiamata senza parametri.

Esempio:

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

ottieni

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

Recupera i dati da una cache.

Parametri:

  • key (obbligatorio): una stringa che identifica in modo univoco l'elemento nella cache.

    Per le voci di cache inserite nella cache da un criterio Apigee Edge (ad esempio Compila criterio della cache), dovrai costruire la chiave cache detraendo dal modo specifico in cui il criterio crea le chiavi per le voci. Per farlo, devi sapere come è configurato il criterio. Anche se sull'utilizzo delle chiavi cache viene descritta la modalità di creazione delle chiavi cache dai criteri, tieni presente che non devi specificare valori stringa relativi all'ambito; nelle chiamate da Node.js, l'ambito fa già parte del contesto.

  • callback (obbligatorio): una funzione che verrà chiamata quando i dati saranno disponibili. Se sono presenti dati memorizzati nella cache, vengono restituiti nel secondo parametro.

    • error: un oggetto Errore. Se si verifica un errore durante il recupero dalla cache, qui verrà impostato un oggetto Error. In caso contrario, questo parametro verrà impostato su "undefined".

    • data: gli eventuali dati recuperati. Sarà uno dei quattro valori:

      • Se è stata inserita una stringa, sarà una stringa.
      • Se è stato inserito un buffer, sarà un buffer.
      • Se è stato inserito un oggetto, sarà una stringa contenente la versione JSON dell'oggetto prodotta da "JSON.stringify".
      • Se non è stato trovato nulla, il valore è "undefined".

Esempio:

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

rimuovi

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

Annullare la convalida di un elemento memorizzato nella cache. Una volta invalidata una chiave, le successive richieste get() restituiranno "undefined", a meno che non venga inserito un altro valore.

Parametri:

  • key (Obbligatorio): una stringa che identifica in modo univoco l'elemento nella cache da invalidare.

    Per le voci di cache inserite nella cache da un criterio Apigee Edge (ad esempio Compila criterio della cache), dovrai costruire la chiave cache detraendo dal modo specifico in cui il criterio crea le chiavi per le voci. Per farlo, devi sapere come è configurato il criterio. Anche se sull'utilizzo delle chiavi cache viene descritta la modalità di creazione delle chiavi cache dai criteri, tieni presente che non devi specificare valori stringa relativi all'ambito; nelle chiamate da Node.js, l'ambito fa già parte del contesto.

  • callback (obbligatorio): una funzione di callback che verrà chiamata con un oggetto Error come primo parametro in caso di errore.

Esempio:

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