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

Cache terdistribusi Apigee Edge memungkinkan Anda menyimpan string atau data lainnya. Seperti kebanyakan {i> cache<i}, {i>cache<i} adalah {i>cache<i} 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 ini, Anda bisa membuat resource cache secara manual, atau menggunakan resource default. Untuk pengantar cache di Apigee Edge, lihat Alat persistensi di Edge. Untuk mempelajari lebih lanjut tentang cache terdistribusi, lihat Contoh: Tujuan umum dalam cache.

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

Metode


(1) getCache

var cache = apigee.getCache(cacheName);

Cari cache yang bernama dan buat jika perlu. Cache yang dihasilkan menggunakan set yang telah ditentukan sebelumnya parameter konfigurasi yang sesuai untuk sebagian besar situasi.

Parameter:

cacheName - String, nama parameter di cache oleh pengguna. (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 untuk membuat resource cache, lihat Membuat dan mengedit lingkungan cache.

Parameter:

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

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

  • resource: Nama "resource cache" Apigee di mana data dalam {i>cache<i} disimpan. Resource cache digunakan untuk meningkatkan alokasi memori dan cache lainnya parameter. Jika tidak ditentukan, resource default akan digunakan. Jika sumber daya cache tidak ada, maka metode tersebut akan menampilkan pesan {i>error<i}.

  • scope: Menentukan apakah entri cache diberi awalan 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 bagian dari aplikasi Apigee Edge yang sama.

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

  • prefix: Jika nama kunci cache menyertakan awalan, sebagai yang dijelaskan dalam Isi Kebijakan cache dan Bekerja dengan 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 waktu default aktif untuk cache entri, dalam hitungan detik. Jika tidak ditetapkan, TTL {i>default<i} dalam sumber daya cache akan menjadi data

  • timeout: Lamanya waktu menunggu untuk mengambil hasil dari cache terdistribusi, dalam hitungan detik. Default 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");

Hal ini berfungsi dengan kebijakan LookupCache yang dikonfigurasi seperti berikut:

<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 mengidentifikasi secara unik item dalam cache. 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, akan dikonversi menjadi string menggunakan "JSON.stringify".

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

  • callback: (Opsional) Jika ditentukan, fungsi yang akan dipanggil setelah data berada dengan aman di {i>cache<i}. Ini akan dipanggil dengan objek Error sebagai parameter pertama jika terjadi kesalahan penyisipan, dan jika tidak maka akan dipanggil dengan 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 secara unik item dalam cache.

    Untuk entri cache yang dimasukkan ke cache dari kebijakan Apigee Edge (seperti Isi kebijakan Cache), Anda Anda harus membuat kunci cache dengan menginferensi dari cara tertentu yang dibuat oleh kebijakan tersebut untuk entri. Untuk melakukannya, Anda harus mengetahui cara kebijakan tersebut dikonfigurasi. Meskipun Bekerja dengan kunci cache menjelaskan bagaimana kunci cache dibuat oleh kebijakan, perlu diingat bahwa Anda tidak boleh menentukan nilai {i>string<i} yang terkait dengan ruang lingkup; dalam panggilan dari Node.js, cakupan sudah menjadi bagian dari konteks tambahan.

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

    • error - Objek Error. Jika terjadi error ketika mengambil dari cache, maka objek Error akan ditetapkan di sini. Jika tidak, tombol ini akan ditetapkan ke "undefined".

    • data - Data yang diambil, jika ada. Ini akan menjadi salah satu dari empat nilai:

      • Jika sebuah string disisipkan, maka akan berupa string.
      • Jika Buffer dimasukkan, itu akan menjadi Buffer.
      • Jika objek dimasukkan, objek itu akan berupa string yang berisi versi JSON dari seperti yang dihasilkan oleh "JSON.stringify".
      • Jika tidak ada yang ditemukan, nilai tersebut akan menjadi "undefined".

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 dibatalkan, permintaan get() berikutnya akan kembali "belum ditentukan" kecuali jika nilai lain dimasukkan.

Parameter:

  • key (Wajib): String yang mengidentifikasi secara unik item dalam cache menjadi tidak valid.

    Untuk entri cache yang dimasukkan ke cache dari kebijakan Apigee Edge (seperti Isi kebijakan Cache), Anda Anda harus membuat kunci cache dengan menginferensi dari cara tertentu yang dibuat oleh kebijakan tersebut untuk entri. Untuk melakukannya, Anda harus mengetahui cara kebijakan tersebut dikonfigurasi. Meskipun Bekerja dengan kunci cache menjelaskan bagaimana kunci cache dibuat oleh kebijakan, perlu diingat bahwa Anda tidak boleh menentukan nilai {i>string<i} yang terkait dengan ruang lingkup; dalam panggilan dari Node.js, cakupan sudah menjadi bagian dari konteks tambahan.

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