Auf den Cache in Node.js zugreifen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Mit dem Modul apigee-access können Sie von einer Node.js-Anwendung aus auf den verteilten Edge-Cache zugreifen. Das Modul umfasst Methoden zum Abrufen eines Cache und zum Einfügen, Abrufen und Entfernen von Daten.

Im verteilten Apigee Edge-Cache können Sie Strings oder andere Daten speichern. Wie die meisten Caches handelt es sich bei diesem Cache um einen zuletzt verwendeten Cache mit einer maximalen Größe. Innerhalb von Apigee Edge wird der Cache auf alle Knoten verteilt, auf denen Ihre Node.js-Anwendung ausgeführt wird. Sie können den Cache über eine Apigee Edge API verwalten. Mit der API können Sie Cache-Ressourcen manuell erstellen oder die Standardressource verwenden. Eine Einführung in das Caching in Apigee Edge finden Sie unter Persistenztools in Edge. Weitere Informationen zum verteilten Cache finden Sie unter Beispiel: Caching für allgemeine Zwecke.

Eine Einführung in das Modul apigee-access und andere Features finden Sie unter Apigee-Zugriffsmodul verwenden.

Methoden


1. getCache

var cache = apigee.getCache(cacheName);

Suchen Sie einen benannten Cache und erstellen Sie ihn bei Bedarf. Der resultierende Cache verwendet einen vordefinierten Satz von Konfigurationsparametern, der für die meisten Situationen geeignet ist.

Parameter:

cacheName – Ein String, der Name des Cache. (nicht der Name der Cache-Ressource).

Gibt zurück:

Ein Cache-Objekt.

Example:

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

2. getCache

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

Greifen Sie auf eine benutzerdefinierte Cache-Ressource zu, die in einem Konfigurationsobjekt angegeben ist. Informationen zum Erstellen einer Cache-Ressource finden Sie unter Umgebungs-Cache erstellen und bearbeiten.

Parameter:

cacheName – Ein String, der Name des benutzerdefinierten Caches. (Nicht der Name der Cache-Ressource)

options – Ein Konfigurationsobjekt. Das Objekt kann leer sein oder die folgenden optionalen Parameter enthalten:

  • resource: Der Name einer Apigee-Cache-Ressource, in der die Cache-Daten gespeichert sind. Cache-Ressourcen werden verwendet, um die Arbeitsspeicherzuweisung und andere Cache-Parameter zu optimieren. Wenn keine Angabe erfolgt, wird eine Standardressource verwendet. Wenn die Cache-Ressource nicht vorhanden ist, gibt die Methode einen Fehler aus.

  • scope: Gibt an, ob Cache-Einträgen ein Präfix vorangestellt wird, um Konflikte zu vermeiden. Gültige Werte sind global, application und exclusive.

    • global: Alle Cache-Einträge können von allen Node.js-Anwendungen in derselben Apigee-"Umgebung" gesehen werden.

    • application: Alle Cache-Einträge können von allen Node.js-Caches gesehen werden, die Teil derselben Apigee Edge-Anwendung sind.

    • exclusive (Standard): Cache-Einträge sind nur für Node.js-Caches derselben Anwendung sichtbar, die denselben Namen haben. Das ist die Standardeinstellung.

  • prefix: Wenn der Name des Cache-Schlüssels ein Präfix enthält, wie unter Cache-Richtlinie ausfüllen und Mit Cache-Schlüsseln arbeiten beschrieben, verwenden Sie diesen Parameter, um es anzugeben. Edge fügt dem Präfixnamen automatisch ein Suffix mit doppeltem Unterstrich hinzu. Wenn also ein Cache-Schlüssel mit dem Präfix „UserToken“ erstellt wurde, muss hier das Präfix „UserToken__“ angegeben werden.

  • defaultTtl: Gibt die Standard-Gültigkeitsdauer für einen Cache-Eintrag in Sekunden an. Wenn keine Angabe erfolgt, wird die Standard-TTL in der Cache-Ressource verwendet.

  • timeout: Wartezeit in Sekunden für den Abruf eines Ergebnisses aus dem verteilten Cache. Die Standardeinstellung beträgt 30 Sekunden. Bei latenzempfindlichen Anwendungen kann dies reduziert werden, um langsame Antwortzeiten zu vermeiden, wenn die Cache-Infrastruktur überlastet ist.

Gibt zurück:

Ein benutzerdefiniertes Cache-Objekt.

Example:

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

Dies funktioniert mit einer LookupCache-Richtlinie, die wie folgt konfiguriert ist:

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

Daten in einen Cache speichern

Parameter:

  • key: (Erforderlich) Ein String, der das Element im Cache eindeutig identifiziert. Cache-Schlüssel sind auf eine Größe von 2 KB begrenzt.

  • data: (Erforderlich) Ein String, Puffer oder Objekt, der die im Cache zu speichernden Daten darstellt. Jeder andere Datentyp führt zu einem Fehler. Der Einfachheit halber werden Objekte mithilfe von "JSON.stringify" in einen String konvertiert.

  • ttl: (Optional) Die maximale Zeit in Sekunden, die die Daten im Cache gespeichert werden. Wenn keine Angabe erfolgt, wird eine Standard-TTL verwendet.

  • callback: (Optional) Eine Funktion, die aufgerufen wird, sobald sich die Daten sicher im Cache befinden. Bei einem Einfügefehler wird er mit einem Fehlerobjekt als erster Parameter aufgerufen. Andernfalls wird er ohne Parameter aufgerufen.

Example:

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

abrufen

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

Daten aus einem Cache abrufen

Parameter:

  • key (erforderlich): Ein String, der das Element im Cache eindeutig identifiziert.

    Für Cache-Einträge, die von einer Apigee Edge-Richtlinie in den Cache gelegt werden (z. B. Cache-Richtlinie ausfüllen), müssen Sie den Cache-Schlüssel erstellen, indem Sie von der spezifischen Art und Weise ableiten, wie die Richtlinie Schlüssel für Einträge erstellt. Dazu müssen Sie wissen, wie die Richtlinie konfiguriert ist. Unter Mit Cache-Schlüsseln arbeiten wird beschrieben, wie Cache-Schlüssel durch Richtlinien erstellt werden. Beachten Sie jedoch, dass Sie keine Stringwerte angeben sollten, die sich auf den Bereich beziehen. Bei Aufrufen von Node.js ist der Bereich bereits Teil des Kontexts.

  • callback (erforderlich): Eine Funktion, die aufgerufen wird, wenn die Daten verfügbar sind. Im Cache gespeicherte Daten werden im zweiten Parameter zurückgegeben.

    • error: Ein Fehlerobjekt. Wenn beim Abrufen aus dem Cache ein Fehler auftritt, wird hier ein Fehlerobjekt festgelegt. Andernfalls wird dieser Parameter auf „nicht definiert“ gesetzt.

    • data: Die abgerufenen Daten, falls vorhanden. Sie ist einer von vier Werten:

      • Wenn ein String eingefügt wurde, ist dies ein String.
      • Wenn ein Puffer eingefügt wurde, handelt es sich dabei um einen Puffer.
      • Wenn ein Objekt eingefügt wurde, ist es ein String, der die von „JSON.stringify“ erzeugte JSON-Version des Objekts enthält.
      • Wenn nichts gefunden wurde, lautet sie „nicht definiert“.

Example:

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

Entfernen

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

Im Cache gespeicherte Elemente entwerten Wenn ein Schlüssel ungültig wird, geben nachfolgende get()-Anfragen "nicht definiert" zurück, sofern kein anderer Wert eingefügt wird.

Parameter:

  • key (erforderlich): Ein String, der das zu entwertende Element im Cache eindeutig identifiziert.

    Für Cache-Einträge, die von einer Apigee Edge-Richtlinie in den Cache gelegt werden (z. B. Cache-Richtlinie ausfüllen), müssen Sie den Cache-Schlüssel erstellen, indem Sie von der spezifischen Art und Weise ableiten, wie die Richtlinie Schlüssel für Einträge erstellt. Dazu müssen Sie wissen, wie die Richtlinie konfiguriert ist. Unter Mit Cache-Schlüsseln arbeiten wird beschrieben, wie Cache-Schlüssel durch Richtlinien erstellt werden. Beachten Sie jedoch, dass Sie keine Stringwerte angeben sollten, die sich auf den Bereich beziehen. Bei Aufrufen von Node.js ist der Bereich bereits Teil des Kontexts.

  • callback (erforderlich): Eine Callback-Funktion, die bei einem Fehler mit einem Fehlerobjekt als ersten Parameter aufgerufen wird.

Example:

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