Cache
Penyimpanan sementara untuk data yang sering diakses supaya nggak perlu ambil dari database terus-menerus, hasilnya: respon lebih cepat dan database nggak kelebihan beban.
Apa itu Cache?
Pernah nggak kamu buka website yang pertama kali loadingnya lama, tapi pas buka lagi jadi jauh lebih cepat? Itu salah satu efek cache bekerja.
Cache (dibaca 'kash') adalah layer penyimpanan sementara yang menyimpan data atau hasil komputasi yang sering diakses, di tempat yang lebih cepat diakses daripada sumber aslinya. Di dunia aplikasi dan data, ini biasanya berarti menyimpan hasil query database di memory (RAM) supaya query berikutnya untuk data yang sama nggak perlu ke database lagi.
Analogi Sederhana
Bayangin kamu kerja di kantor dan sering butuh data dari lemari arsip di lantai lain. Kalau tiap kali butuh data kamu harus naik turun tangga, itu lambat banget. Tapi kalau kamu salin dokumen yang sering dipakai dan taruh di laci meja sendiri, prosesnya jauh lebih cepat.
Laci meja kamu = Cache. Lemari arsip di lantai lain = Database.
Jenis-Jenis Cache
| Jenis | Di mana Tersimpan | Contoh |
|---|---|---|
| Browser Cache | Di browser user | HTML, CSS, gambar tersimpan lokal |
| CDN Cache | Di server CDN dekat user | Aset statis seperti gambar dan JavaScript |
| Application Cache | Di memory aplikasi server | Hasil query yang sering dipakai |
| Database Buffer Cache | Di dalam database itu sendiri | InnoDB buffer pool di MySQL |
| Distributed Cache | Server cache terpisah | Redis, Memcached |
Cache Hit vs Cache Miss
Dua istilah penting yang perlu kamu tau:
Cache Hit: Data yang diminta ada di cache. Respon cepat, database nggak terbebani.
Cache Miss: Data nggak ada di cache, belum pernah di-cache atau sudah expired. Aplikasi harus ambil dari database, simpan ke cache, lalu return ke user.
Cache Hit Rate adalah persentase request yang berhasil dilayani dari cache. Makin tinggi makin bagus, tapi 100% nggak mungkin karena data baru selalu butuh cache miss pertama kali.
Tantangan: Cache Invalidation
Masalah terbesar dalam caching adalah: kapan data di cache dihapus atau diperbarui? Kalau data di database berubah tapi cache masih menyimpan data lama, user bisa dapat informasi yang sudah usang (stale data).
Beberapa strategi umum:
TTL (Time-To-Live): Data cache otomatis expired setelah waktu tertentu, misalnya 5 menit atau 1 jam.
Cache Busting: Saat data di-update, hapus atau timpa cache yang relevan secara langsung.
Write-Through: Setiap kali data diupdate di database, update juga cache secara bersamaan.
Udah paham Cache? Lanjut latihan SQL dan Excel yuk!
Latihan interaktif, langsung di browser.