Accesso alla cache in Node.js

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

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

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

Per un'introduzione al modulo apigee-access e alle altre sue funzionalità, consulta Utilizzare il 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 adatti 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 );

Accedi a una risorsa cache personalizzata specificata in un oggetto di configurazione. Per informazioni su come creare una risorsa cache, consulta Creare e modificare una cache dell'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 vengono memorizzati i dati della cache. Le risorse 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 cache non esiste, il metodo genera un errore.

  • scope: specifica se alle voci della cache viene anteposto 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 della cache sono visibili solo alle cache Node.js nella stessa applicazione che hanno lo stesso nome. Questa è l'impostazione predefinita.

  • prefix: se il nome della chiave della cache include un prefisso, come descritto in Compilare il criterio della cache e Utilizzare le chiavi della cache, utilizza questo parametro per specificarlo. Edge aggiunge automaticamente un suffisso con due trattini bassi al nome del prefisso. Pertanto, se è stata creata una chiave della cache con il prefisso "UserToken", il prefisso da specificare qui è "UserToken__".

  • defaultTtl: specifica il valore TTL predefinito per una voce della cache, in secondi. Se non specificato, verrà utilizzato il TTL predefinito nella risorsa 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 possono ridurre questo problema per evitare tempi di risposta lenti in caso di sovraccarico dell'infrastruttura della cache.

Restituisce:

Un oggetto cache personalizzato.

Esempio:

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

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>

passa

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

Inserisci i dati in una cache.

Parametri:

  • key: (obbligatorio) una stringa che identifica in modo univoco l'elemento nella cache. Le chiavi della 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 comporterà un errore. Per comodità, gli oggetti verranno convertiti in una stringa utilizzando "JSON.stringify".

  • ttl: (Facoltativo) Il tempo massimo per la persistenza dei dati nella cache, in secondi. Se non specificato, verrà utilizzato un TTL predefinito.

  • callback: (Facoltativo) Se specificato, una funzione che verrà chiamata quando i dati saranno al sicuro nella cache. Verrà chiamato con un oggetto Error come primo parametro se si verifica un errore di inserimento, altrimenti verrà chiamato 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
});

get

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

Recuperare i dati da una cache.

Parametri:

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

    Per le voci della cache inserite nella cache da un criterio Apigee Edge (ad esempio il criterio di compilazione della cache), devi compilare la chiave della cache deducendola dal modo specifico in cui il criterio crea le chiavi per le voci. Per farlo, dovrai sapere come viene configurato il criterio. Sebbene l'articolo Utilizzo delle chiavi cache descriva in che modo le chiavi cache vengono create dai criteri, tieni presente che non devi specificare valori di 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 sono disponibili. Se sono presenti dati memorizzati nella cache, vengono restituiti nel secondo parametro.

    • error: un oggetto Error. 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. Può avere uno dei seguenti 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 viene trovato nulla, il valore sarà "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 che una chiave è stata invalidata, le richieste get() successive 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 della cache inserite nella cache da un criterio Apigee Edge (ad esempio il criterio di compilazione della cache), devi elaborare la chiave della cache deducendola dal modo specifico in cui il criterio crea le chiavi per le voci. Per farlo, dovrai sapere come viene configurato il criterio. Anche se Lavorazione delle chiavi della cache descrive come le chiavi della cache vengono create dai criteri, tieni presente che non devi specificare valori di 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) {
});