Uzyskiwanie dostępu do pamięci podręcznej w Node.js

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Moduł apigee-access umożliwia dostęp do rozproszonej pamięci podręcznej na serwerach brzegowych z aplikacji Node.js. Moduł zawiera metody uzyskiwania pamięci podręcznej oraz umieszczania, pobierania i usuwania danych.

Rozproszona pamięć podręczna Apigee Edge umożliwia przechowywanie ciągów tekstowych i innych danych. Podobnie jak większość pamięci podręcznej, jest to najrzadziej używana pamięć podręczna o maksymalnym rozmiarze. W Apigee Edge pamięć podręczna jest rozpowszechniana wśród wszystkich węzłów, w których jest wykonywana aplikacja Node.js. Możesz zarządzać pamięcią podręczną za pomocą interfejsu Apigee Edge API. Za pomocą interfejsu API możesz ręcznie utworzyć zasoby pamięci podręcznej lub użyć zasobu domyślnego. Wprowadzenie do buforowania w Apigee Edge znajdziesz w artykule Narzędzia trwałego przechowywania w Edge. Więcej informacji o rozproszonej pamięci podręcznej znajdziesz w artykule Przykład: buforowanie do zwykłych obciążeń.

Wprowadzenie do modułu apigee-access i jego innych funkcji znajdziesz w artykule Korzystanie z modułu dostępu apigee.

Metody


(1) getCache

var cache = apigee.getCache(cacheName);

Wyszukaj nazwaną pamięć podręczną i utwórz ją, jeśli to konieczne. Powstała pamięć podręczna korzysta ze wstępnie zdefiniowanego zestawu parametrów konfiguracyjnych, które sprawdza się w większości sytuacji.

Parametry:

cacheName – ciąg znaków; nazwa pamięci podręcznej. (nie jest to nazwa zasobu pamięci podręcznej).

Zwraca:

Obiekt pamięci podręcznej.

Przykład:

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

(2) getCache

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

Dostęp do niestandardowego zasobu pamięci podręcznej określonego w obiekcie konfiguracji. Informacje na temat tworzenia zasobu pamięci podręcznej znajdziesz w sekcji Tworzenie i edytowanie pamięci podręcznej środowiska.

Parametry:

cacheName – ciąg znaków; nazwa niestandardowej pamięci podręcznej. (Nie jest to nazwa zasobu pamięci podręcznej)

options – obiekt konfiguracji. Obiekt może być pusty lub zawierać te parametry opcjonalne:

  • resource: nazwa „zasobu pamięci podręcznej” Apigee, w którym są przechowywane dane pamięci podręcznej. Zasoby pamięci podręcznej służą do dostrajania alokacji pamięci i innych parametrów pamięci podręcznej. Jeśli nie określisz zasobu, zostanie użyty zasób domyślny. Jeśli zasób pamięci podręcznej nie istnieje, metoda zgłasza błąd.

  • scope: określa, czy wpisy pamięci podręcznej mają przedrostek, aby zapobiec kolizji. Prawidłowe wartości to global, application i exclusive.

    • global: wszystkie wpisy z pamięci podręcznej są widoczne dla wszystkich aplikacji Node.js w tym samym „środowisku” Apigee.

    • application: wszystkie wpisy pamięci podręcznej mogą być widoczne dla wszystkich pamięci podręcznych Node.js, które są częścią tej samej aplikacji Apigee Edge.

    • exclusive (wartość domyślna): wpisy pamięci podręcznej są widoczne tylko dla pamięci podręcznych Node.js w tej samej aplikacji o takiej samej nazwie. To jest ustawienie domyślne.

  • prefix: jeśli nazwa klucza pamięci podręcznej zawiera prefiks, zgodnie z opisem w sekcjach Zapełnianie pamięci podręcznej i Praca z kluczami pamięci podręcznej użyj tego parametru, aby go określić. Edge automatycznie dodaje do nazwy prefiksu sufiks z podwójnym podkreśleniem. Jeśli więc utworzono klucz pamięci podręcznej z prefiksem „UserToken”, musisz tu wpisać prefiks „UserToken__”.

  • defaultTtl: określa domyślny czas życia wpisu w pamięci podręcznej (w sekundach). Jeśli nie podasz domyślnej wartości TTL w zasobie pamięci podręcznej, zostanie użyta domyślna wartość TTL.

  • timeout: czas oczekiwania na pobranie wyniku z rozproszonej pamięci podręcznej (w sekundach). Domyślnie jest to 30 sekund. W przypadku aplikacji wrażliwych na opóźnienia czas ten warto ograniczyć, aby uniknąć długich czasów odpowiedzi w przypadku przeciążenia infrastruktury pamięci podręcznej.

Zwraca:

Niestandardowy obiekt pamięci podręcznej.

Przykład:

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

Działa to z zasadą LookupCache skonfigurowaną w następujący sposób:

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

wejść

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

umieszczanie danych w pamięci podręcznej;

Parametry:

  • key: (wymagany) ciąg znaków, który jednoznacznie identyfikuje element w pamięci podręcznej. Rozmiar klucza pamięci podręcznej nie może przekraczać 2 KB.

  • data: (wymagany) ciąg znaków, bufor lub obiekt reprezentujący dane do buforowania. Każdy inny typ danych spowoduje błąd. Dla wygody obiekty zostaną przekonwertowane na ciąg znaków za pomocą funkcji „JSON.stringify”.

  • ttl: (opcjonalnie) maksymalny czas przechowywania danych w pamięci podręcznej (w sekundach). Jeśli nie podasz żadnej wartości, zostanie użyta domyślna wartość TTL.

  • callback: (opcjonalnie) jeśli określisz funkcję, która zostanie wywołana, gdy dane znajdą się bezpiecznie w pamięci podręcznej. W przypadku wystąpienia błędu wstawiania wywoływany jest obiekt Error jako pierwszy parametr. W przeciwnym razie jest wywoływany bez parametrów.

Przykład:

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

pobierz

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

Pobieranie danych z pamięci podręcznej.

Parametry:

  • key (wymagany): ciąg znaków, który jednoznacznie identyfikuje element w pamięci podręcznej.

    W przypadku wpisów pamięci podręcznej umieszczanych w pamięci podręcznej przez zasadę Apigee Edge (np. zasada zapełniania pamięci podręcznej) musisz utworzyć klucz pamięci podręcznej, wnioskowając o sposób, w jaki zasada tworzy klucze dla wpisów. Aby to zrobić, musisz znać sposób konfiguracji tej zasady. Chociaż sekcja Praca z kluczami pamięci podręcznej opisuje sposób tworzenia kluczy pamięci podręcznej przez zasady, pamiętaj, że nie należy określać wartości ciągów znaków związanych z zakresem. W wywołaniach z Node.js zakres jest już częścią kontekstu.

  • callback (wymagany): funkcja, która zostanie wywołana, gdy dane będą dostępne. Jeśli dane znajdują się w pamięci podręcznej, są one zwracane w drugim parametrze.

    • error – obiekt błędu. Jeśli podczas pobierania z pamięci podręcznej wystąpi błąd, tutaj zostanie ustawiony obiekt Error. W przeciwnym razie ten parametr będzie miał wartość „undefined”.

    • data – pobrane dane (jeśli jakieś zostały pobrane). Będzie to jedna z 4 wartości:

      • Jeśli został wstawiony ciąg, będzie to ciąg znaków.
      • Jeśli został wstawiony bufor, będzie to bufor.
      • Jeśli wstawiono obiekt, będzie to ciąg znaków zawierający jego wersję JSON utworzoną przez „JSON.stringify”.
      • Jeśli nic nie zostanie znalezione, wartość będzie „nieokreślona”.

Przykład:

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

usuń

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

Unieważnij element w pamięci podręcznej. Gdy klucz zostanie unieważniony, kolejne żądania get() będą zwracać wartość „undefined”, chyba że zostanie wprowadzona inna wartość.

Parametry:

  • key (wymagany): ciąg znaków jednoznacznie identyfikujący element w pamięci podręcznej, który ma zostać unieważniony.

    W przypadku wpisów pamięci podręcznej umieszczanych w pamięci podręcznej przez zasadę Apigee Edge (np. zasada zapełniania pamięci podręcznej) musisz utworzyć klucz pamięci podręcznej, wnioskowając o sposób, w jaki zasada tworzy klucze dla wpisów. Aby to zrobić, musisz znać sposób konfiguracji tej zasady. Chociaż sekcja Praca z kluczami pamięci podręcznej opisuje sposób tworzenia kluczy pamięci podręcznej przez zasady, pamiętaj, że nie należy określać wartości ciągów znaków związanych z zakresem. W wywołaniach z Node.js zakres jest już częścią kontekstu.

  • callback (wymagany): funkcja wywołania zwrotnego, która w przypadku wystąpienia błędu zostanie wywołana z obiektem Error jako pierwszym parametrem.

Przykład:

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