Node.js'de önbelleğe erişme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Node.js uygulamasından Edge'de dağıtılan önbelleğe erişmek için apigee-access modülünü kullanabilirsiniz. Modül önbellek alma, verileri ekleme, alma ve kaldırma yöntemlerini içerir.

Apigee Edge dağıtılmış önbellek, dizeleri veya diğer verileri depolamanıza olanak tanır. Çoğu önbellek gibi bu da maksimum boyutu olan ve en az kullanılan bir önbellektir. Apigee Edge'de önbellek, Node.js uygulamanızın çalıştığı tüm düğümler arasında dağıtılır. Önbelleği Apigee Edge API aracılığıyla yönetebilirsiniz. API'yi kullanarak önbellek kaynaklarını manuel olarak oluşturabilir veya varsayılan kaynağı kullanabilirsiniz. Apigee Edge'de önbelleğe almayla ilgili temel bilgiler için Edge'deki kalıcılık araçları başlıklı makaleyi inceleyin. Dağıtılmış önbellek hakkında daha fazla bilgi edinmek için Örnek: Genel amaçlı önbelleğe alma bölümüne bakın.

apigee-access modülü ve diğer özellikleriyle ilgili tanıtım için Apigee-access modülünü kullanma konusuna bakın.

Yöntemler


(1) getCache

var cache = apigee.getCache(cacheName);

Adlandırılmış bir önbelleği arayın ve gerekiyorsa bunu oluşturun. Ortaya çıkan önbellek, çoğu durum için uygun olan, önceden tanımlanmış bir yapılandırma parametreleri grubu kullanır.

Parametreler:

cacheName: Bir dize, önbelleğin adı. (Önbellek kaynağının adı değil).

İade et:

Önbellek nesnesi.

Örnek:

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

(2) getCache

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

Bir yapılandırma nesnesinde belirtilen özel önbellek kaynağına erişin. Önbellek kaynağı oluşturma hakkında bilgi edinmek için Ortam önbelleği oluşturma ve düzenleme bölümüne bakın.

Parametreler:

cacheName: Bir dize, özel önbelleğin adı. (Önbellek kaynağının adı değil)

options: Bir yapılandırma nesnesidir. Nesne boş olabilir veya aşağıdaki isteğe bağlı parametreleri içerebilir:

  • resource: Önbellek verilerinin depolandığı Apigee "önbellek kaynağının" adı. Önbellek kaynakları, bellek ayırma ve diğer önbellek parametrelerinde ince ayar yapmak için kullanılır. Belirtilmezse varsayılan kaynak kullanılır. Önbellek kaynağı yoksa yöntem hata verir.

  • scope: Çakışmaları önlemek için önbellek girişlerine önek eklenip eklenmeyeceğini belirtir. Geçerli değerler global, application ve exclusive'dir.

    • global: Tüm önbellek girişleri, aynı Apigee "ortamındaki" tüm Node.js uygulamaları tarafından görülebilir.

    • application: Tüm önbellek girişleri, aynı Apigee Edge uygulamasının parçası olan tüm Node.js önbellekleri tarafından görülebilir.

    • exclusive: (Varsayılan) Önbellek girişleri yalnızca aynı uygulamada bulunan ve aynı ada sahip olan Node.js önbellekleri tarafından görülebilir. Bu varsayılan seçenektir.

  • prefix: Önbellek anahtarı adı, Önbelleği Doldurma politikası ve Önbellek anahtarlarıyla çalışma bölümlerinde açıklandığı gibi bir ön ek içeriyorsa bunu belirtmek için bu parametreyi kullanın. Edge, ön ek adına otomatik olarak çift alt çizgi son eki ekler. Dolayısıyla, "UserToken" önekiyle bir önbellek anahtarı oluşturulduysa burada belirtilecek ön ek "UserToken__" olur.

  • defaultTtl: Bir önbellek girişi için varsayılan geçerlilik süresini saniye cinsinden belirtir. Belirtilmezse önbellek kaynağındaki varsayılan TTL kullanılır.

  • timeout: Dağıtılmış önbellekten bir sonucu getirmek için saniye cinsinden beklenecek süre. Varsayılan 30 saniyedir. Önbellek altyapısı aşırı yüklüyse gecikmeye duyarlı uygulamalar, yavaş yanıt sürelerini önlemek için bu süreyi azaltmak isteyebilir.

İade et:

Özel bir önbellek nesnesi.

Örnek:

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

Bu, şu şekilde yapılandırılmış bir LookupCache politikasıyla çalışır:

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

Verileri bir önbelleğe alma.

Parametreler:

  • key: (Zorunlu) Önbellekteki öğeyi benzersiz şekilde tanımlayan bir dize. Önbellek anahtarları 2 KB boyutuyla sınırlıdır.

  • data: (Zorunlu) Önbelleğe alınacak verileri temsil eden bir dize, Arabellek veya nesne. Diğer tüm veri türleri hatayla sonuçlanır. Kolaylık sağlamak amacıyla nesneler "JSON.stringify" kullanılarak bir dizeye dönüştürülür.

  • ttl: (İsteğe bağlı) Verilerin önbellekte saklanması için saniye cinsinden maksimum süre. Belirtilmezse varsayılan TTL kullanılır.

  • callback: (İsteğe bağlı) Belirtilirse veriler güvenli bir şekilde önbelleğe alındıktan sonra çağrılacak bir işlev. Ekleme hatası varsa ilk parametre olarak bir Hata nesnesiyle; aksi takdirde, parametre olmadan çağrılır.

Örnek:

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

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

Bir önbellekten veri alma.

Parametreler:

  • key (gerekli): Önbellekteki öğeyi benzersiz bir şekilde tanımlayan bir dize.

    Bir Apigee Edge politikasından (ör. Önbelleği Doldurma politikası) önbelleğe alınan önbellek girişleri için politikanın girişler için anahtar oluşturma yönteminden çıkarım yaparak önbellek anahtarını oluşturmanız gerekir. Bunun için politikanın nasıl yapılandırıldığını bilmeniz gerekir. Önbellek anahtarlarıyla çalışma, önbellek anahtarlarının politikalar tarafından nasıl oluşturulduğunu açıklasa da kapsamla ilgili dize değerleri belirtmemeniz gerektiğini unutmayın. Node.js'den yapılan çağrılarda kapsam zaten bağlamın bir parçasıdır.

  • callback (gerekli): Veriler kullanılabilir olduğunda çağrılacak bir işlev. Önbelleğe alınmış veriler varsa bu veriler ikinci parametrede döndürülür.

    • error - Bir Hata nesnesi. Önbellekten alma sırasında bir hata oluşursa burada bir Hata nesnesi ayarlanır. Aksi takdirde bu parametre "undefined" olarak ayarlanır.

    • data: Alınan veriler (varsa). Değer, şu dört değerden biridir:

      • Bir dize eklendiyse bu bir dize olacaktır.
      • Bir Arabellek eklendiyse bu bir Tampon olacaktır.
      • Bir nesne eklendiyse bu, nesnenin "JSON.stringify" tarafından oluşturulan JSON sürümünü içeren bir dize olur.
      • Hiçbir şey bulunamazsa durum "tanımsız" olur.

Örnek:

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

kaldır

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

Önbelleğe alınan bir öğeyi geçersiz kılın. Bir anahtar geçersiz kılındıktan sonra, başka bir değer eklenmediği sürece sonraki get() istekleri "undefined" değerini döndürür.

Parametreler:

  • key (Zorunlu): Geçersiz kılınacak öğeyi önbellekte benzersiz şekilde tanımlayan bir dize.

    Bir Apigee Edge politikasından (ör. Önbelleği Doldurma politikası) önbelleğe alınan önbellek girişleri için politikanın girişler için anahtar oluşturma yönteminden çıkarım yaparak önbellek anahtarını oluşturmanız gerekir. Bunun için politikanın nasıl yapılandırıldığını bilmeniz gerekir. Önbellek anahtarlarıyla çalışma, önbellek anahtarlarının politikalar tarafından nasıl oluşturulduğunu açıklasa da kapsamla ilgili dize değerleri belirtmemeniz gerektiğini unutmayın. Node.js'den yapılan çağrılarda kapsam zaten bağlamın bir parçasıdır.

  • callback (Zorunlu): Bir hata varsa ilk parametre olarak Hata nesnesiyle çağrılacak bir geri çağırma işlevi.

Örnek:

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