Cache API adalah metode yang digunakan untuk menyimpan data dalam cache. Anda dapat memanggil Cache API untuk menyimpan data di titik kehadiran (POPs) sehingga data dapat disajikan dengan cepat untuk permintaan berikutnya. Dalam operasi API Cache, Anda dapat mengonfigurasi waktu hidup (TTL) dan ukuran cache sesuai dengan kebutuhan bisnis Anda.
Cara kerjanya
Anda dapat menggunakan Cache API bawaan dari Edge Routine untuk menyimpan hasil yang diproses oleh Edge Routine atau data yang diambil dari server asal pada Edge Security Acceleration (ESA) POPs. Dengan cara ini, permintaan lain yang mengakses POPs yang sama dapat menggunakan kembali hasil yang tersimpan, sehingga jumlah perhitungan atau permintaan berulang dikurangi. Gambar berikut menunjukkan hubungan antara Edge Routine dan cache ESA.
Spesifikasi API
Cache API pada dasarnya mengikuti spesifikasi yang dijelaskan di Cache, sementara Edge Routine menggunakan kembali mesin cache yang ada dari ESA. Akibatnya, semantik akhir untuk Cache API dan Cache mungkin berbeda.
Definisi API
cache.put(request/string, response)
Menambahkan objek Response ke Cache.
Jika metode PUT berhasil, Promise yang dikembalikan diselesaikan menjadi undefined.
Jika mesin Cache gagal, objek Promise ditolak dan kesalahan dipicu.
Jika kuota mesin Cache habis, objek Promise ditolak dan kesalahan dipicu.
Atur kunci cache ke URL objek Request atau gunakan string untuk menentukan URL. Hanya URL HTTP yang didukung karena batasan mesin Cache dari ESA.
Ini adalah fungsi asinkron. Anda dapat memanggil await untuk menunggu hingga objek Response ditambahkan ke Cache.
Anda dapat mengonfigurasi header Cache-Control untuk objek Response untuk menentukan TTL untuk cache. Konfigurasi header Cache-Control harus memenuhi spesifikasi Cache.
cache.get(request/string)
Mendapatkan objek Response yang kuncinya adalah permintaan input atau string input. Jika objek tidak ada, Promise yang dikembalikan diselesaikan menjadi undefined.
Ini adalah fungsi asinkron. Anda dapat memanggil await untuk menunggu hingga objek Response diperoleh.
Metode GET mungkin gagal mengembalikan objek yang ditambahkan dalam metode PUT sebelumnya. Objek Cache mungkin tidak dapat diambil karena algoritma caching Least Recently Used (LRU).
cache.delete(request/string)
Menghapus objek Response yang kuncinya adalah permintaan input.
Jika objek Response dihapus, Promise yang dikembalikan diselesaikan menjadi true.
Jika objek Response gagal dihapus, Promise yang dikembalikan diselesaikan menjadi false.
Ini adalah fungsi asinkron. Anda dapat memanggil await untuk menunggu hingga objek Response dihapus.
Batasan
Semua permintaan sebelumnya merupakan subpermintaan yang berbagi kuota subpermintaan Edge Routine. Secara default, permintaan Edge Routine dapat memiliki maksimal 32 subpermintaan fetch. Kuota ini mungkin berubah setelah Edge Routine digunakan secara komersial. Panggilan cache dianggap sebagai subpermintaan yang berbagi kuota subpermintaan fetch. Total jumlah subpermintaan cache.put, cache.get, cache.delete, dan fetch tidak boleh melebihi 32 dalam konteks Permintaan.
cache.put, cache.get, dan cache.delete berada di bawah kontrol konkurensi. Jika satu permintaan melakukan operasi GET dan permintaan lain melakukan operasi DELETE untuk URL yang sama, status tertunda mungkin dikembalikan untuk operasi GET atau DELETE. Permintaan gagal karena mencoba memodifikasi sumber daya dengan kunci yang sama pada saat bersamaan. Dalam hal ini, Anda dapat mencoba lagi nanti.
nullJika permintaan cache.put, cache.get, dan cache.delete ditolak dan Promise yang dikembalikan diselesaikan menjadi true, operasi tersebut berada di bawah kontrol konkurensi.
Purge cache
Konten yang disimpan dalam cache dengan memanggil Cache API tidak dapat secara otomatis di-purge. Anda harus menentukan parameter TTL saat menggunakan Cache.put().