Accesso alla cache in Node.js

Stai visualizzando la documentazione di Apigee Edge.
Consulta la 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, 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, è una cache LRU (Least Recently Used) con una dimensione massima. In 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 oppure 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: memorizzazione nella cache per scopi generici.

Per un'introduzione al modulo apigee-access e alle altre 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 insieme predefinito di parametri di configurazione adatti alla maggior parte delle situazioni.

Parametri:

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

Valori restituiti:

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 della cache personalizzata specificata in un oggetto di configurazione. Per informazioni su come creare una risorsa della cache, consulta Creare e modificare una cache dell'ambiente.

Parametri:

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

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

  • resource: il nome di una "risorsa della cache" Apigee in cui vengono 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 della cache non esiste, il metodo genera un errore.

  • scope: specifica se le voci della cache sono precedute da un prefisso per evitare conflitti. 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: (impostazione predefinita) le voci della cache vengono visualizzate solo dalle 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 Policy Popola cache e Utilizzare le chiavi della cache, utilizza questo parametro per specificarlo. Edge aggiunge automaticamente un suffisso con doppio trattino basso al nome del prefisso. Quindi, se è stata creata una chiave cache con il prefisso "UserToken", il prefisso da specificare qui è "UserToken__".

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

  • timeout: il tempo di attesa per recuperare un risultato dalla cache distribuita, in secondi. Il valore predefinito è 30 secondi. Le applicazioni sensibili alla latenza potrebbero voler ridurre questo valore per evitare tempi di risposta lenti se l'infrastruttura della cache è sovraccarica.

Valori restituiti:

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

Questo funziona con una policy LookupCache configurata come segue:

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

passami

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 sono limitate a una dimensione 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 genererà un errore. Per comodità, gli oggetti verranno convertiti in una stringa utilizzando "JSON.stringify".

  • ttl: (facoltativo) il tempo massimo di persistenza dei dati nella cache, in secondi. Se non specificato, verrà utilizzato un TTL predefinito.

  • callback: (facoltativo) se specificata, una funzione che verrà chiamata una volta che i dati sono in modo sicuro nella cache. Verrà chiamata con un oggetto Error come primo parametro se si verifica un errore di inserimento, altrimenti verrà chiamata 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));

Recupera 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 una policy Apigee Edge (ad esempio la policy Popola cache), dovrai creare la chiave della cache deducendola dal modo specifico in cui la policy crea le chiavi per le voci. Per farlo, devi sapere come è configurata la policy. Sebbene Utilizzare le chiavi della cache descriva come le policy creano le chiavi della cache, tieni presente che non devi specificare valori di stringa correlati 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 : i dati recuperati, se presenti. 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 generata da "JSON.stringify".
      • Se non è stato trovato nulla, 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));

Annulla la convalida di un elemento memorizzato nella cache. Una volta annullata la convalida di 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 di cui annullare la convalida.

    Per le voci della cache inserite nella cache da una policy Apigee Edge (ad esempio la policy Popola cache), dovrai creare la chiave della cache deducendola dal modo specifico in cui la policy crea le chiavi per le voci. Per farlo, devi sapere come è configurata la policy. Sebbene Utilizzare le chiavi della cache descriva come le policy creano le chiavi della cache, tieni presente che non devi specificare valori di stringa correlati 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 se si verifica un errore.

Esempio:

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