Mengakses cache di Node.js

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Anda dapat menggunakan modul apigee-access untuk mengakses cache terdistribusi Edge dari dalam aplikasi Node.js. Modul ini mencakup metode untuk mendapatkan cache dan memasukkan, mendapatkan, dan menghapus data.

Cache terdistribusi Apigee Edge memungkinkan Anda menyimpan string atau data lainnya. Seperti kebanyakan cache, cache adalah cache yang paling jarang digunakan dengan ukuran maksimum. Di dalam Apigee Edge, cache didistribusikan di antara semua node tempat aplikasi Node.js Anda dieksekusi. Anda dapat mengelola cache melalui Apigee Edge API. Dengan API, Anda dapat membuat resource cache secara manual, atau menggunakan resource default. Untuk pengantar tentang caching di Apigee Edge, lihat Alat persistensi di Edge. Untuk mempelajari cache terdistribusi lebih lanjut, lihat Contoh: Cache tujuan umum.

Untuk pengantar modul apigee-access dan fitur lainnya, lihat Menggunakan modul akses apigee.

Metode


(1) getCache

var cache = apigee.getCache(cacheName);

Cari cache yang diberi nama dan buat jika perlu. Cache yang dihasilkan menggunakan serangkaian parameter konfigurasi standar yang sesuai untuk sebagian besar situasi.

Parameter:

cacheName - String, nama cache. (Bukan nama resource cache).

Hasil:

Objek cache.

Contoh:

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

(2) getCache

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

Mengakses resource cache kustom yang ditentukan dalam objek konfigurasi. Untuk informasi cara membuat resource cache, lihat Membuat dan mengedit cache lingkungan.

Parameter:

cacheName - String, nama cache kustom. (Bukan nama resource cache)

options - Objek konfigurasi. Objek dapat kosong, atau dapat berisi parameter opsional berikut:

  • resource: Nama "cache resource" Apigee tempat data cache disimpan. Resource cache digunakan untuk meningkatkan alokasi memori dan parameter cache lainnya. Jika tidak ditentukan, resource default akan digunakan. Jika resource cache tidak ada, metode akan menampilkan error.

  • scope: Menentukan apakah entri cache diberi awalan untuk mencegah konflik. Nilai yang valid adalah global, application, dan exclusive.

    • global: Semua entri cache dapat dilihat oleh semua aplikasi Node.js di "lingkungan" Apigee yang sama.

    • application: Semua entri cache dapat dilihat oleh semua cache Node.js yang merupakan bagian dari aplikasi Apigee Edge yang sama.

    • exclusive: (Default) Entri cache hanya terlihat oleh cache Node.js dalam aplikasi yang sama yang memiliki nama yang sama. Ini adalah defaultnya.

  • prefix: Jika nama kunci cache menyertakan awalan, seperti yang dijelaskan dalam Mengisi Kebijakan cache dan Menggunakan kunci cache, gunakan parameter ini untuk menentukannya. Edge akan otomatis menambahkan akhiran garis bawah ganda ke nama awalan. Jadi, jika kunci cache dibuat dengan awalan "UserToken", awalan yang akan ditentukan di sini adalah "UserToken__".

  • defaultTtl: Menentukan waktu aktif default untuk entri cache, dalam detik. Jika tidak ditentukan, TTL default dalam resource cache akan digunakan.

  • timeout: Lamanya waktu menunggu untuk mengambil hasil dari cache terdistribusi, dalam detik. Defaultnya 30 detik. Aplikasi yang sensitif terhadap latensi sebaiknya mengurangi hal ini untuk mencegah waktu respons yang lambat jika infrastruktur cache kelebihan beban.

Hasil:

Objek cache kustom.

Contoh:

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

Kebijakan ini berfungsi dengan kebijakan LookupCache yang dikonfigurasi seperti ini:

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

Masukkan data ke dalam cache.

Parameter:

  • key: (Wajib) String yang mengidentifikasi item dalam cache secara unik. Ukuran kunci cache dibatasi hingga 2 KB.

  • data: (Wajib) String, Buffer, atau objek yang mewakili data yang akan di-cache. Jenis data lainnya akan menghasilkan error. Untuk memudahkan, objek akan dikonversi menjadi string menggunakan "JSON.stringify".

  • ttl: (Opsional) Waktu maksimum untuk mempertahankan data di cache, dalam detik. Jika tidak ditentukan, TTL default akan digunakan.

  • callback: (Opsional) Jika ditentukan, fungsi yang akan dipanggil setelah data berada di cache dengan aman. Fungsi ini akan dipanggil dengan objek Error sebagai parameter pertama jika terjadi error penyisipan, dan jika tidak, objek tersebut akan dipanggil tanpa parameter.

Contoh:

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

dapatkan

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

Mengambil data dari cache.

Parameter:

  • key (wajib): String yang mengidentifikasi item dalam cache secara unik.

    Untuk entri cache yang dimasukkan ke cache dari kebijakan Apigee Edge (seperti Isi kebijakan Cache), Anda harus membuat kunci cache dengan menginferensi dari cara spesifik kebijakan membuat kunci untuk entri. Untuk melakukan ini, Anda perlu mengetahui bagaimana kebijakan dikonfigurasi. Meskipun Menggunakan kunci cache menjelaskan cara kunci cache dibuat oleh kebijakan, perlu diingat bahwa Anda tidak boleh menentukan nilai string yang terkait dengan cakupan; dalam panggilan dari Node.js, cakupan sudah menjadi bagian dari konteks.

  • callback (wajib): Fungsi yang akan dipanggil saat data tersedia. Jika ada data yang di-cache, data tersebut akan ditampilkan di parameter kedua.

    • error - Objek Error. Jika terjadi error saat mengambil dari cache, objek Error akan ditetapkan di sini. Jika tidak, parameter ini akan ditetapkan ke "belum ditentukan".

    • data - Data yang diambil, jika ada. Nilainya adalah salah satu dari empat nilai:

      • Jika string disisipkan, string tersebut akan berupa string.
      • Jika Buffer dimasukkan, maka akan menjadi Buffer.
      • Jika objek telah disisipkan, objek tersebut akan berupa string yang berisi versi JSON dari objek seperti yang dihasilkan oleh "JSON.stringify".
      • Jika tidak ada yang ditemukan, parameter akan menjadi "tidak ditentukan".

Contoh:

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

hapus

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

Membatalkan item yang di-cache. Setelah kunci menjadi tidak valid, permintaan get() berikutnya akan menampilkan "tidak ditentukan" kecuali jika nilai lain dimasukkan.

Parameter:

  • key (Wajib): String yang secara unik mengidentifikasi item dalam cache untuk dibatalkan validasinya.

    Untuk entri cache yang dimasukkan ke cache dari kebijakan Apigee Edge (seperti Isi kebijakan Cache), Anda harus membuat kunci cache dengan menginferensi dari cara spesifik kebijakan membuat kunci untuk entri. Untuk melakukan ini, Anda perlu mengetahui bagaimana kebijakan dikonfigurasi. Meskipun Menggunakan kunci cache menjelaskan cara kunci cache dibuat oleh kebijakan, perlu diingat bahwa Anda tidak boleh menentukan nilai string yang terkait dengan cakupan; dalam panggilan dari Node.js, cakupan sudah menjadi bagian dari konteks.

  • callback (Wajib): Fungsi callback yang akan dipanggil dengan objek Error sebagai parameter pertama jika terjadi error.

Contoh:

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