Pengenalan Caching
Memahami konsep caching untuk meningkatkan performa aplikasi
Apa itu Caching
- Menyimpan salinan data di lokasi yang lebih cepat diakses
- Mengurangi waktu response dengan menghindari komputasi atau I/O berulang
- Bisa di memory, disk, atau server terpisah seperti Redis
Mengapa Caching Penting
- Database query bisa lambat untuk data yang sering diakses
- Komputasi berat tidak perlu diulang untuk input yang sama
- Mengurangi beban server dan database
- Meningkatkan user experience dengan response lebih cepat
Dimana Cache Bisa Ditempatkan
Client-Side Cache
- Browser menyimpan asset seperti gambar, CSS, dan JavaScript
- LocalStorage atau IndexedDB untuk data aplikasi
- HTTP cache headers mengontrol cache di browser
CDN Cache
- Server edge network menyimpan konten statis
- Mengurangi latency untuk user di lokasi geografis berbeda
- Cocok untuk gambar, video, dan file statis lainnya
Application Cache
- Cache di memory aplikasi server
- Contoh: menyimpan hasil query database di variable
- Hilang saat server restart
Distributed Cache
- Server cache terpisah seperti Redis atau Memcached
- Bisa diakses oleh banyak instance aplikasi
- Tetap ada meski salah satu server restart
Cache Hit dan Cache Miss
Cache Hit
- Data yang diminta ada di cache
- Response dikembalikan tanpa mengakses database
- Menghemat waktu dan resource
Cache Miss
- Data yang diminta tidak ada di cache
- Aplikasi harus mengambil data dari sumber asli
- Data kemudian disimpan di cache untuk request berikutnya
Time-To-Live (TTL)
- Waktu maksimal data disimpan di cache
- Setelah TTL habis, data dianggap expired dan dihapus
- TTL disesuaikan dengan seberapa sering data berubah
- Data yang jarang berubah bisa memiliki TTL lebih panjang
Praktik Terbaik
- Cache data yang sering diakses dan jarang berubah
- Jangan cache data sensitif tanpa enkripsi
- Pantau cache hit ratio untuk mengukur efektivitas
- Beri TTL yang sesuai, jangan terlalu pendek atau terlalu panjang
- Siapkan fallback ke sumber asli jika cache tidak tersedia