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 serta menempatkan, mendapatkan, dan menghapus data.

Cache terdistribusi Apigee Edge memungkinkan Anda menyimpan string atau data lainnya. Seperti sebagian besar cache, ini adalah cache yang paling jarang digunakan dengan ukuran maksimum. Di dalam Apigee Edge, cache didistribusikan di antara semua node tempat aplikasi Node.js dijalankan. Anda dapat mengelola cache melalui Apigee Edge API. Dengan API, Anda dapat membuat resource cache secara manual, atau menggunakan resource default. Untuk pengantar tentang penyimpanan dalam cache 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 apigee-access.

Metode


(1) getCache

var cache = apigee.getCache(cacheName);

Cari cache bernama dan buat jika perlu. Cache yang dihasilkan menggunakan serangkaian parameter konfigurasi yang telah ditentukan dan cocok 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 tentang 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 "resource cache" Apigee tempat data cache disimpan. Resource cache digunakan untuk menyesuaikan 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 tabrakan. 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 dilihat oleh cache Node.js di 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 secara otomatis menambahkan akhiran garis bawah ganda ke nama awalan. Jadi, jika kunci cache dibuat dengan awalan "UserToken", awalan yang ditentukan di sini adalah "UserToken__".

  • defaultTtl: Menentukan time to live default untuk entri cache, dalam detik. Jika tidak ditentukan, TTL default di resource cache akan digunakan.

  • timeout: Durasi waktu tunggu untuk mengambil hasil dari cache yang didistribusikan, dalam detik. Defaultnya adalah 30 detik. Aplikasi yang sensitif terhadap latensi mungkin ingin menguranginya 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");

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

Memasukkan data ke dalam cache.

Parameter:

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

  • data: (Diperlukan) 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 dalam 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 ada error penyisipan, dan jika tidak, fungsi ini 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
});

get

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

Mengambil data dari cache.

Parameter:

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

    Untuk entri cache yang dimasukkan ke cache dari kebijakan Apigee Edge (seperti Kebijakan Isi Cache), Anda harus membuat kunci cache dengan menyimpulkan dari cara spesifik kebijakan membuat kunci untuk entri. Untuk melakukannya, Anda perlu mengetahui cara kebijakan dikonfigurasi. Meskipun artikel 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 dalam cache, data tersebut akan ditampilkan dalam 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 "undefined".

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

      • Jika string disisipkan, string tersebut akan menjadi string.
      • Jika Buffer disisipkan, Buffer tersebut akan menjadi Buffer.
      • Jika objek disisipkan, objek tersebut akan berupa string yang berisi versi JSON objek seperti yang dihasilkan oleh "JSON.stringify".
      • Jika tidak ada yang ditemukan, nilainya akan "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
});

remove

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

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

Parameter:

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

    Untuk entri cache yang dimasukkan ke cache dari kebijakan Apigee Edge (seperti Kebijakan Isi Cache), Anda harus membuat kunci cache dengan menyimpulkan dari cara spesifik kebijakan membuat kunci untuk entri. Untuk melakukannya, Anda perlu mengetahui cara kebijakan dikonfigurasi. Meskipun artikel 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) {
});