DEV Community

Nandan Ramdani
Nandan Ramdani

Posted on

Mengenal Jenis-jenis Caching di Aplikasi Web & API

Caching adalah teknik menyimpan data sementara agar lebih cepat diakses di kemudian hari. Dengan caching, aplikasi bisa mengurangi beban server, menghemat bandwidth, dan mempercepat respons ke pengguna. Namun, setiap jenis cache punya cara kerja dan kasus penggunaan yang berbeda.


1. Browser Cache (HTTP Caching)

Cara Kerja

  • Browser otomatis menyimpan resource (gambar, CSS, JS, bahkan response API) sesuai header HTTP yang dikirim server.
  • Header yang umum:

    • Cache-Control: max-age=3600 → simpan response selama 1 jam.
    • ETag → validasi apakah resource berubah.
    • Last-Modified → mirip ETag tapi berbasis timestamp.

Kapan Digunakan?

  • File statis: gambar, CSS, JS.
  • API semi-dinamis: misalnya data profil user, daftar produk yang jarang berubah.

Catatan

  • Hati-hati pada data sensitif (misalnya API dengan token), jangan asal di-cache.
  • Untuk file versi baru, gunakan teknik cache-busting (misalnya /app.js?v=2).

2. Application-Level Cache (In-Memory Cache)

Cara Kerja

  • Data disimpan di memori aplikasi (misalnya Map di Node.js atau @Cacheable di Spring).
  • Sangat cepat, tapi hilang saat aplikasi restart.

Kapan Digunakan?

  • Query ringan tapi sering dipanggil (misalnya hasil konversi format, parsing JSON, dsb).
  • Data kecil yang sangat sering diakses.

Catatan

  • Jangan dipakai untuk data besar.
  • Tidak cocok untuk aplikasi dengan banyak instance (karena tiap instance punya cache sendiri).

3. Distributed Cache (Redis, Memcached)

Cara Kerja

  • Cache disimpan di luar aplikasi, biasanya Redis atau Memcached.
  • Bisa diakses oleh banyak instance aplikasi sekaligus.

Kapan Digunakan?

  • API read-heavy: data yang sering dibaca dari database tapi jarang berubah.
  • Menyimpan session login (kalau tidak mau pakai cookie JWT).
  • Rate limiting, job queue, pub/sub, dsb.

Catatan

  • Pastikan ada strategi cache invalidation (misalnya hapus key saat data berubah).
  • Redis mendukung TTL (time-to-live), cocok untuk cache sementara.

4. Database Query Cache

Cara Kerja

  • Beberapa database (misalnya MySQL, PostgreSQL) punya query cache internal.
  • DB menyimpan hasil query tertentu dan mengembalikannya tanpa eksekusi ulang.

Kapan Digunakan?

  • Query read-only yang sering sama persis dipanggil.

Catatan

  • Banyak sistem modern menonaktifkan query cache default karena bisa bikin overhead.
  • Biasanya lebih baik menggunakan Redis dibanding andalkan query cache bawaan DB.

5. Reverse Proxy / CDN Cache

Cara Kerja

  • Proxy atau CDN (misalnya Nginx, Cloudflare, Varnish) menyimpan response HTTP di edge server.
  • Client berikutnya tidak perlu request ke origin server.

Kapan Digunakan?

  • Website publik dengan traffic besar.
  • File statis, API publik yang boleh di-cache.

Catatan

  • Sangat efektif untuk menurunkan beban server.
  • Harus hati-hati pada API privat (jangan sampai response user A di-cache dan dikirim ke user B).

6. Client-Side Cache (App / Mobile)

Cara Kerja

  • Aplikasi mobile atau desktop menyimpan data API ke local storage, SQLite, Realm, atau file lokal.
  • Biasanya dikombinasikan dengan ETag: kalau server balas 304, app pakai data lama.

Kapan Digunakan?

  • Offline-first apps (chat, notes, e-commerce).
  • Aplikasi mobile yang ingin hemat bandwidth.

Catatan

  • Harus ada mekanisme sinkronisasi dengan server.

Rekomendasi Praktik Baik

  • Gunakan browser cache untuk file statis (gambar, JS, CSS).
  • Gunakan Redis untuk cache query database yang berat.
  • Gunakan ETag / Last-Modified untuk API dinamis agar hemat bandwidth.
  • Gunakan CDN untuk aplikasi publik dengan traffic tinggi.
  • Jangan cache data sensitif (misalnya response API berisi token atau informasi user privat).

Penutup

Caching bukan soal “mempercepat aplikasi” saja, tapi juga soal efisiensi: mengurangi query ke database, mengurangi bandwidth, dan menghemat biaya infrastruktur.
Namun, caching yang salah bisa berbahaya: data basi, inkonsistensi, atau bahkan kebocoran data.
Kuncinya adalah memilih jenis caching yang tepat sesuai kebutuhan.

Top comments (0)