Apa Itu Caching? Panduan Sederhana untuk Pembuat Aplikasi
Caching berarti menyimpan salinan siap pakai dari sesuatu yang lambat atau mahal untuk didapatkan, sehingga permintaan berikutnya bisa dijawab dengan cepat dari salinan itu. Salinan yang disimpan disebut cache. Browser-mu men-cache gambar agar situs terbuka lebih cepat saat kamu kembali kedua kalinya; server men-cache hasil query database yang lambat sehingga tidak perlu menjalankannya untuk setiap pengunjung.
Caching membuat aplikasi lebih cepat dan lebih murah untuk dijalankan. Konsekuensi besarnya adalah salinan bisa menjadi usang.
Mengapa caching penting saat membangun dengan AI
Kamu akan menemui caching di aplikasi buatan AI dalam tiga cara:
- "Saya sudah memperbarui aplikasinya tapi masih melihat versi lama." Ini momen caching yang paling umum, dan biasanya tidak berbahaya: browser atau CDN menampilkan salinan tersimpan.
- Kecepatan. Jika halaman lambat karena menghitung ulang angka yang sama untuk setiap pengunjung, meng-cache hasilnya bisa membuatnya terasa instan.
- Biaya. Banyak AI builder dan hosting menagih untuk compute, waktu database, dan panggilan API luar. Jika seribu pengunjung memicu permintaan mahal yang sama, caching memungkinkanmu membayarnya sekali saja.
Memahami dasarnya membuatmu bisa meminta caching di tempat yang membantu, dan mengenalinya ketika itulah penyebab sesuatu tampak salah.
Analogi sehari-hari
Bayangkan dapur sebuah kafe yang ramai.
Setiap pagi, barista bisa menyeduh setiap kopi dari biji yang baru digiling saat dipesan. Itu lambat. Sebagai gantinya, mereka menyiapkan sepoci kopi tubruk di atas pemanas. Kebanyakan pelanggan mendapat secangkir dalam hitungan detik; itu cache hit. Ketika poci habis, seseorang menyeduh yang baru; itu cache miss.
Tetapi kopi yang terlalu lama duduk akan basi, jadi kafe punya aturan: buang poci yang lebih tua dari 30 menit. Aturan itu adalah waktu kedaluwarsa cache. Tidak ada yang mau menyimpan poci yang sama sepanjang hari, dan tidak ada yang mau menyeduh pesanan khusus seseorang dengan susu oat dan tiga sendok gula sebelumnya; ada hal-hal yang sama sekali tidak boleh di-cache.
Di mana cache berada
Satu pemuatan halaman bisa melewati beberapa cache, dari yang paling dekat dengan pengguna hingga yang paling jauh:
| Cache | Lokasinya | Yang biasanya disimpan | Contoh |
|---|---|---|---|
| Cache browser | Di perangkat pengunjung | Gambar, stylesheet, script, font | Logo kamu muncul seketika di halaman kedua |
| Cache CDN | Server di seluruh dunia, dekat pengunjung | File statis dan kadang seluruh halaman | Pengunjung di Tokyo mendapat file dari server terdekat, bukan dari origin kamu |
| Cache aplikasi | Di atau dekat server kamu, sering di memori atau Redis | Hasil query lambat atau panggilan API luar | Kurs hari ini, diambil sekali per jam |
| Cache database | Di dalam database | Data yang sering dipakai dan rencana query | Baris populer tetap berada di memori yang cepat |
Sebuah CDN (content delivery network) pada dasarnya adalah jaringan cache global untuk file situsmu.
Bagaimana cache memutuskan apa yang disimpan
Setiap cache harus menjawab pertanyaan yang sama:
- Apa yang boleh di-cache? Data publik dan bersama (gambar produk, postingan blog): ya. Data privat (halaman akun pengguna, pesan mereka): tidak pernah di cache bersama.
- Berapa lama? Ini disebut TTL (time to live). Logo mungkin di-cache setahun; stok barang selama 30 detik.
- Bagaimana diperbarui? Salinan kedaluwarsa lalu diambil ulang, atau aplikasi sengaja menghapusnya ketika data berubah, yang disebut invalidasi.
Untuk website, server memberi tahu browser dan CDN cara men-cache setiap file menggunakan header Cache-Control. Misalnya, Cache-Control: max-age=3600 berarti "kamu boleh memakai ulang salinan ini selama satu jam."
Alat build modern menangani bagian tersulit untuk file statis dengan cache busting: setiap kali file berubah, ia mendapat nama baru dengan sidik jari, seperti app.3f9a2c.js. Browser bisa menyimpan nama lama dalam waktu lama, karena versi baru memang memiliki nama yang berbeda.
Contoh nyata: katalog produk
Kamu punya toko online kecil. Halaman utama menampilkan 50 produk dengan harga dan stok dari database, plus daftar "trending" yang membutuhkan perhitungan lambat atas semua pesanan.
- Gambar dan script di-cache oleh browser dan CDN dalam waktu lama. Setiap build baru memberi file yang berubah nama baru, sehingga pembaruan tetap muncul.
- Daftar trending dihitung sekali setiap 10 menit dan disimpan di cache aplikasi. Setiap pengunjung dalam 10 menit itu mendapat hasil tersimpan secara instan.
- Harga di-cache untuk waktu singkat, dan cache dihapus setiap kali kamu mengedit produk, sehingga pelanggan tidak pernah melihat harga lama terlalu lama.
- Stok saat checkout tidak pernah di-cache. Ketika seseorang menekan "Beli", aplikasi memeriksa database yang sebenarnya, sehingga tidak bisa menjual barang yang baru saja habis.
- Halaman keranjang dan akun tidak pernah disimpan di cache bersama, karena bersifat pribadi.
Hasilnya: halaman utama cepat, database bekerja jauh lebih sedikit, dan tidak ada yang penting untuk uang atau privasi yang pernah usang.
Istilah penting
| Istilah | Artinya |
|---|---|
| Cache hit / miss | Data ditemukan di cache / harus diambil dari sumbernya. |
| TTL (time to live) | Berapa lama salinan tersimpan dianggap masih segar. |
| Data usang (stale) | Salinan tersimpan yang sudah tidak mutakhir. |
| Invalidasi | Sengaja menghapus salinan tersimpan karena aslinya berubah. |
| Cache busting | Mengubah nama atau URL file saat file berubah, supaya cache mengambil versi baru. |
| Cache-Control | Header HTTP yang memberi tahu browser dan CDN cara men-cache sebuah respons. |
| Hard refresh | Memuat ulang halaman sambil meminta browser mengabaikan cache-nya. |
| Redis | Penyimpanan data di memori yang populer, sering dipakai sebagai cache aplikasi. |
Kesalahpahaman umum
- "Caching selalu baik." Men-cache hal yang salah menyebabkan bug nyata: harga usang, postingan baru tidak muncul, atau, kasus terburuk, halaman privat satu pengguna ditampilkan ke pengguna lain. Lakukan caching dengan sengaja.
- "Jika saya melihat versi lama, pembaruan saya gagal." Biasanya tidak. Coba hard refresh (Ctrl+Shift+R, atau Cmd+Shift+R di Mac) atau jendela privat sebelum menganggap ada yang rusak.
- "Caching memperbaiki aplikasi yang lambat." Caching hanya menyembunyikan kelambatan untuk permintaan yang berulang. Permintaan pertama tetap lambat, dan jika masalah dasarnya adalah indeks database yang hilang, perbaiki itu juga.
- "Saya harus men-cache semuanya selama mungkin." Waktu cache yang panjang cocok untuk file yang mendapat nama baru ketika berubah. Untuk halaman HTML dan data, waktu yang lebih singkat lebih aman.
- "Menghapus cache saya memperbaiki untuk semua orang." Itu hanya menghapus browser kamu. Pengunjung dan cache CDN tetap punya salinan mereka sendiri.
Yang bisa kamu tanyakan ke AI builder
- "Bagian mana dari aplikasi ini yang lambat, dan mana yang aman di-cache?"
- "Cache [daftar trending / hasil API] selama [N] menit, dan hapus ketika data yang mendasarinya berubah."
- "Pastikan tidak ada halaman dengan data pribadi atau akun yang bisa di-cache oleh CDN atau cache bersama."
- "Berikan waktu cache yang panjang untuk file statis yang diberi sidik jari, dan yang pendek untuk HTML."
- "Cache respons dari [API luar] agar kita tidak memanggilnya di setiap pemuatan halaman, dan beri tahu seberapa usang data itu bisa menjadi."
- "Setelah publikasi saya melihat versi lama. Apakah itu cache browser saya, atau ada yang belum di-deploy?"
Caching di Mythex
Setelah kamu mempublikasikan pembaruan ke aplikasi Mythex, dokumentasi mencatat bahwa cache CDN bisa tertinggal sebentar, dan hard refresh pada URL publik menampilkan versi baru; lihat Cara mempublikasikan. Halaman Batas hosting juga merekomendasikan caching untuk aset statis, karena hosting, waktu database, dan bandwidth dibayar dari saldo kredit kamu. Di luar itu, seperti caching hasil query atau respons API, adalah sesuatu yang kamu minta agent untuk dibangun ke dalam aplikasimu.
Bacaan terkait: apa itu CDN, cara membuat website kamu lebih cepat, dan apa itu rate limiting.
Pertanyaan
Apa itu caching dengan bahasa sederhana?
Caching berarti menyimpan salinan sesuatu yang lambat atau mahal untuk didapatkan, sehingga saat dibutuhkan lagi, ia bisa disajikan dengan cepat dari salinan tersimpan itu. Browser, CDN, server, dan database semuanya memakai cache untuk membuat aplikasi lebih cepat dan lebih murah dijalankan.
Mengapa saya masih melihat versi lama website saya setelah memperbaruinya?
Kemungkinan besar browser atau CDN kamu menyajikan salinan file lama yang tersimpan. Hard refresh (Ctrl+Shift+R di Windows, Cmd+Shift+R di Mac) biasanya menyelesaikannya. Untuk pengunjung, situs yang dibangun dengan baik memberi nama baru pada file yang diperbarui sehingga cache otomatis mengambil versi baru.
Apa yang dilakukan menghapus cache?
Menghapus cache browser menghapus salinan file dan halaman yang disimpan browser, sehingga semuanya diunduh ulang dari awal berikutnya. Ini bisa memperbaiki halaman yang tampak rusak atau usang, dan halaman akan dimuat sedikit lebih lambat untuk pertama kalinya setelah itu.
Apakah caching bisa menimbulkan masalah?
Bisa. Risiko utamanya adalah menyajikan data usang, misalnya harga lama atau stok yang tidak akurat, atau yang lebih buruk, menyimpan halaman privat satu pengguna lalu menampilkannya ke orang lain. Aturan caching yang baik menentukan apa yang boleh disimpan, berapa lama, dan tidak pernah menyimpan data pribadi di cache bersama.