Auf den Cache in Node.js zugreifen

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X.
info

Mit dem Modul apigee-access können Sie aus einer Node.js-Anwendung auf den verteilten Edge-Cache zugreifen. Das Modul enthält Methoden zum Abrufen eines Caches sowie zum Speichern, Abrufen und Entfermen von Daten.

Im verteilten Cache von Apigee Edge können Sie Strings oder andere Daten speichern. Wie die meisten Caches ist er ein Cache mit der Strategie „Least Recently Used“ (LRU) und einer maximalen Größe. In Apigee Edge ist 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 apigee-access Modul und seine anderen Funktionen finden Sie unter Das Modul „apigee-access“ verwenden.

Methoden


(1) getCache

var cache = apigee.getCache(cacheName);

Einen benannten Cache suchen und bei Bedarf erstellen. Der resultierende Cache verwendet eine vordefinierte Reihe von Konfigurationsparametern, die für die meisten Situationen geeignet sind.

Parameter :

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

Gibt zurück :

Ein Cache-Objekt.

Beispiel :

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

(2) getCache

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

Auf eine benutzerdefinierte Cache-Ressource zugreifen, 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 werden. Cache-Ressourcen werden verwendet, um die Arbeitsspeicherzuweisung und andere Cache Parameter zu optimieren. Wenn nichts angegeben ist, wird eine Standardressource verwendet. Wenn die Cache-Ressource nicht vorhanden ist, gibt die Methode einen Fehler aus.

  • scope: Gibt an, ob Cache-Einträge mit einem Präfix versehen werden, 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 können nur von Node.js-Caches in derselben Anwendung mit demselben Namen gesehen werden. Das ist die Standardeinstellung.

  • prefix: Wenn der Cache-Schlüsselname ein Präfix enthält, wie in der Populate Cache-Richtlinie und unter Mit Cache-Schlüsseln arbeiten beschrieben, geben Sie es mit diesem Parameter an. Edge fügt dem Präfixnamen automatisch ein Suffix mit zwei Unterstrichen hinzu. Wenn also ein Cache-Schlüssel mit dem Präfix „UserToken“ erstellt wurde, ist das hier anzugebende Präfix „UserToken__“.

  • defaultTtl: Gibt die Standardgültigkeitsdauer (TTL) für einen Cache Eintrag in Sekunden an. Wenn nichts angegeben ist, wird die Standardlebensdauer in der Cache-Ressource verwendet.

  • timeout: Die Wartezeit in Sekunden, bis ein Ergebnis aus dem verteilten Cache abgerufen wird. Standardmäßig 30 Sekunden. Bei latenzempfindlichen Anwendungen kann dieser Wert reduziert werden, um langsame Reaktionszeiten zu vermeiden, wenn die Cache-Infrastruktur überlastet ist.

Gibt zurück :

Ein benutzerdefiniertes Cache-Objekt.

Beispiel :

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 so 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 einem 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, ein Puffer oder ein Objekt, das die zu cachenden Daten darstellt. Jeder andere Datentyp führt zu einem Fehler. Zur Vereinfachung werden Objekte mit „JSON.stringify“ in einen String konvertiert.

  • ttl: (Optional) Die maximale Zeit in Sekunden, für die die Daten im Cache gespeichert werden. Wenn nichts angegeben ist, wird eine Standardlebensdauer verwendet.

  • callback: (Optional) Wenn angegeben, eine Funktion, die aufgerufen wird, sobald die Daten sicher im Cache gespeichert sind. Sie wird mit einem Error-Objekt als erstem Parameter aufgerufen, wenn ein Fehler beim Einfügen auftritt. Andernfalls wird sie ohne Parameter aufgerufen.

Beispiel :

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

Daten aus einem Cache abrufen.

Parameter :

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

    Für Cache-Einträge, die über eine Apigee Edge-Richtlinie (z. B. PopulateCache-Richtlinie) in den Cache eingefügt wurden, müssen Sie den Cache-Schlüssel erstellen, indem Sie ihn aus 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 von Richtlinien erstellt werden. Sie sollten jedoch keine Stringwerte angeben, 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. Wenn Cache-Daten vorhanden sind, werden sie im zweiten Parameter zurückgegeben.

    • error : Ein Error-Objekt. Wenn beim Abrufen aus dem Cache ein Fehler auftritt, wird hier ein Error-Objekt festgelegt. Andernfalls wird dieser Parameter auf „undefined“ gesetzt.

    • data : Die abgerufenen Daten, falls vorhanden. Es kann einer von vier Werten sein:

      • Wenn ein String eingefügt wurde, ist es ein String.
      • Wenn ein Puffer eingefügt wurde, ist es ein Puffer.
      • Wenn ein Objekt eingefügt wurde, ist es ein String, der die JSON-Version des Objekts enthält, wie sie von "JSON.stringify" erstellt wurde.
      • Wenn nichts gefunden wurde, ist es „undefined“.

Beispiel :

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

remove

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

Ein im Cache gespeichertes Element entwerten. Sobald ein Schlüssel entwertet wurde, geben nachfolgende get()-Anfragen "undefined" zurück, es sei denn, es wird ein anderer Wert eingefügt.

Parameter :

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

    Für Cache-Einträge, die über eine Apigee Edge-Richtlinie (z. B. PopulateCache-Richtlinie) in den Cache eingefügt wurden, müssen Sie den Cache-Schlüssel erstellen, indem Sie ihn aus 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 von Richtlinien erstellt werden. Sie sollten jedoch keine Stringwerte angeben, die sich auf den Bereich beziehen. Bei Aufrufen von Node.js ist der Bereich bereits Teil des Kontexts.

  • callback (erforderlich): Eine Callback-Funktion, die mit einem Error-Objekt als erstem Parameter aufgerufen wird, wenn ein Fehler auftritt.

Beispiel :

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