Apa Itu Cache? Bagaimana Data yang Di-cache Mempercepat Proses?
CPU modern dapat mengambil nilai dari cache terdekatnya dalam waktu kurang dari satu nanodetik. Mengambil nilai yang sama dari memori utama membutuhkan waktu sekitar seratus kali lebih lama. Jadi, chip melakukan hal yang wajar: menyimpan salinan data yang kemungkinan besar akan dibutuhkannya tepat di sebelahnya. Salinan itu adalah cache, dan trik ini diulang di setiap lapisan komputasi, dari silikon di prosesor Anda hingga server yang mengirimkan halaman ini. Panduan ini menjelaskan apa itu cache, bagaimana cara kerja caching, setiap tempat cache berada, dan apakah Anda perlu membersihkannya.
Definisi cache: apa sebenarnya cache itu?
Cache adalah penyimpanan sementara. Kecil, cepat, dan ditempatkan sedekat mungkin dengan apa pun yang membutuhkannya. Cache menyimpan salinan data yang diharapkan sistem akan dibutuhkan lagi, sehingga ketika saatnya tiba, sistem dapat mengambil salinan tersebut alih-alih melakukan pekerjaan yang lambat atau mahal. Buka halaman ini untuk kedua kalinya dan sebagian besar isinya akan dimuat dari salinan yang sudah ada di mesin Anda, bukan dari server.
Kata "sementara" adalah kata kunci yang berperan penting di sini. Data yang di-cache bukanlah data asli. Itu adalah duplikat, yang disimpan semata-mata untuk mempercepat proses, dan Anda dapat menghapusnya kapan pun Anda mau. Hapus saja dan tidak ada data berharga yang hilang. Sistem hanya akan kembali ke sumber aslinya dan membangun kembali salinannya. Saldo bank Anda tidak tersimpan dalam cache; salinan halaman web yang menampilkan saldo tersebut mungkin yang tersimpan. Kesenjangan antara sumber kebenaran dan salinan sementara itulah alasan utama mengapa caching aman untuk diterapkan pada semua hal. Dalam kasus terburuk, salinan tersebut hilang atau salah, sistem akan mengabaikannya, mengambil data dari sumber aslinya, dan melanjutkan proses.
Cara kerja cache: cache hit, cache miss, dan eviction
Setiap cache, di mana pun, beroperasi berdasarkan satu pertanyaan: apakah saya sudah memiliki salinan ini? Ya berarti jawaban cepat. Sajikan salinannya, lewati jalur yang lambat, selesai. Tidak berarti Anda melakukan pekerjaan yang lambat sekali: ambil dari sumber, kembalikan hasilnya, dan simpan salinannya saat keluar agar permintaan di masa mendatang cepat. Itulah seluruh mekanismenya. Sisanya adalah pencatatan seputar dua masalah yang rumit, yaitu apa yang harus dibuang ketika ruang penyimpanan menipis, dan bagaimana menghindari pengembalian salinan yang sudah usang.
Cache hit vs cache miss
Ditemukan? Itu adalah cache hit. Tidak ditemukan? Cache miss, yang memaksa permintaan ke penyimpanan data yang lebih lambat. Persentase permintaan yang menghasilkan hit disebut rasio hit, dan ini adalah satu-satunya angka yang benar-benar dipantau oleh para insinyur. Jaringan pengiriman konten yang melayani file statis seperti gambar dan stylesheet menargetkan 95 hingga 99 persen. Jika mencapai angka tersebut, hampir setiap pengunjung mendapatkan salinan terdekat sementara server asal hampir tidak tersentuh. Rasio hit yang rendah berarti cache sebagian besar hanya sebagai hiasan.
Saat cache penuh: kebijakan pengusiran
Cache memang sengaja dibuat kecil. Penyimpanan cepat membutuhkan biaya, jadi tidak pernah ada ruang untuk semuanya, dan begitu cache penuh, sesuatu harus dikeluarkan. Aturan yang menentukan yang akan dikeluarkan adalah kebijakan pengusiran. Standar umum adalah Least Recently Used (LRU): buang apa pun yang paling lama tidak disentuh, dengan harapan bahwa apa yang telah Anda abaikan akhir-akhir ini akan terus Anda abaikan. Skema lain menghitung secara berbeda. Least Frequently Used (LFU) melacak seberapa sering setiap item diakses. First In First Out (FIFO) hanya membuang entri terlama. Taruhan yang sama, hanya tampilannya yang berbeda. Setiap kebijakan sebenarnya adalah tebakan tentang salinan mana yang paling sedikit akan Anda rindukan.
Menjaga agar salinan tetap mutakhir: TTL dan kebijakan penulisan.
Salinan hanya dianggap baik selama masih sesuai dengan sumbernya. Oleh karena itu, sebagian besar cache memberi cap pada setiap entri dengan waktu berlaku (time-to-live, atau TTL): hitungan mundur, setelah itu salinan dianggap kedaluwarsa dan harus diperiksa ulang atau diambil ulang. Di web, header Cache-Control mengatur penghitung waktu tersebut. Aturan dasarnya adalah RFC 9111 , dan arahan max-age-nya memungkinkan respons tetap di-cache hingga satu tahun, atau 31.536.000 detik jika Anda menginginkan angka pastinya. Penulisan adalah bagian lain dari masalah ini. Write-through menyimpan ke cache dan sumber secara bersamaan, yang aman tetapi lebih lambat. Write-back menyimpan ke cache sekarang dan ke sumber nanti, yang cepat tetapi menyisakan jendela waktu singkat di mana keduanya tidak sesuai. Pilih kompromi Anda.

Jenis-jenis cache: dari CPU hingga jaringan pengiriman konten
Inilah bagian yang seringkali terlewatkan dalam sebagian besar penjelasan. Cache browser dan cache CPU L1 terdengar seperti dua dunia yang berbeda — tetapi keduanya memiliki konsep yang sama pada jarak yang berbeda. Setiap lapisan menyimpan salinan data yang lambat diakses agar tetap dekat dengan apa pun yang membutuhkannya. Telusuri strukturnya dari dalam ke luar dan polanya akan berulang di sepanjang jalan.
Penyimpanan cache memori: Tingkat cache CPU L1, L2, L3
Caching tercepat terjadi pada prosesor itu sendiri. CPU modern memiliki tiga tingkat cache yang dibangun dari SRAM, jenis memori yang jauh lebih cepat daripada DRAM yang digunakan untuk memori utama dan jauh lebih mahal per byte. L1 sangat kecil dan hampir instan, beberapa puluh kilobyte per inti merespons dalam waktu sekitar satu nanodetik. L2 lebih besar dan sedikit lebih lambat. L3 lebih besar lagi dan dibagi di antara inti; Intel Core i9-14900K dilengkapi dengan 36 MB, dan AMD Ryzen 9 7950X3D meningkatkan L3 menjadi 128 MB. Semua ini ada untuk menutupi satu celah: mengambil data dari L1 membutuhkan waktu kurang dari satu nanodetik, sementara memori utama DDR5 membutuhkan sekitar 70 nanodetik, perbedaan sekitar seratus kali lipat. Cache bekerja karena program menggunakan kembali data yang sama dan data yang berada di dekatnya, kebiasaan yang disebut lokalitas referensi.
| Lapisan | Ukuran standar | Waktu akses tipikal | Apa yang terkandung di dalamnya |
|---|---|---|---|
| Cache CPU L1 | 32-80 KB per inti | ~0,7-1 ns | Instruksi dan nilai selanjutnya |
| Cache CPU L2 | 0,5-2 MB per inti | ~3-4 ns | Data yang baru-baru ini digunakan di dekat inti |
| Cache CPU L3 | 16-128 MB dibagikan | ~10-20 ns | Data yang dibagikan antar inti |
| Memori utama (RAM) | 8-64 GB | ~70-100 ns | Program yang sedang berjalan dan data aktif |
| Penyimpanan SSD | 256 GB-4 TB | ~50-100 µs | Berkas dan sistem operasi |
| simpul tepi CDN | bervariasi | ~20 ms melalui jaringan | Salinan web di dekat pengunjung |
| Server asal | bervariasi | ~100-200 ms lintas wilayah | Sumber kebenaran |
Cache disk, OS, dan aplikasi
Di atas perangkat keras, perangkat lunak menyimpan cache-nya sendiri. Sistem operasi Anda menyimpan data yang sering diakses, seperti file yang baru saja dibaca, di RAM cadangan sehingga pembukaannya kembali instan. Basis data menyimpan hasil kueri umum dalam cache. Aplikasi menambahkan lapisan memori khusus, seringkali Redis atau Memcached, yang berada di antara aplikasi dan basis datanya dan menjawab permintaan berulang dalam hitungan mikrodetik. Tugasnya identik dengan CPU: menyimpan data yang sering diakses di penyimpanan yang lebih cepat sehingga Anda tidak perlu membayar biaya lambat dua kali.
Caching sisi server dan CDN
Lapisan terluar menjangkau seluruh internet. Ketika server web menyimpan halaman yang sudah selesai dalam cache, server tersebut menghindari pembuatan ulang halaman untuk setiap pengunjung. Jaringan pengiriman konten (CDN) melangkah lebih jauh, menyalin aset-aset tersebut ke server tepi yang tersebar di seluruh dunia sehingga setiap permintaan dijawab dari mesin yang secara fisik dekat dengan pengguna. Permintaan ke server tepi CDN dapat kembali dalam waktu sekitar 20 milidetik, dibandingkan dengan 100 hingga 200 milidetik ketika permintaan harus melintasi benua ke sumbernya. Model ini sekarang mendominasi web: pada tahun 2024, sekitar 75 persen konten pihak ketiga disajikan melalui CDN.
Cache peramban: apa yang disimpan peramban web Anda.
Cache browser adalah yang paling sering kita temui. Saat membuka situs web, browser akan menyimpan sebagian isinya ke perangkat Anda: HTML, stylesheet, skrip, gambar, dan font. Saat kembali lagi nanti, browser akan membaca file-file tersebut langsung dari disk Anda, bukan mengunduhnya lagi, itulah sebabnya kunjungan kedua ke halaman web terbuka lebih cepat daripada yang pertama. Logo situs? Diunduh sekali, dan digunakan kembali di setiap halaman yang menampilkannya.
Inilah yang membuat saya heran: sebagian besar kecepatan itu tidak dimanfaatkan. Pada tahun 2021, sekitar 90,4 persen respons web desktop dapat di-cache , namun 52 persen situs masih berada di bawah persentil ke-25 pada audit caching browser standar. Keuntungan itu hanya terbuang sia-sia, dan sebagian besar web melewatinya begitu saja. Atur caching dengan benar dan hasilnya akan langsung terasa. Kunjungan berulang menjadi lebih cepat, penggunaan data seluler menurun, dan server asal berhenti menangani permintaan berulang yang sama.

Manfaat caching: mengapa hal ini membuat segalanya lebih cepat
Caching adalah sebuah kompromi. Anda menggunakan sedikit memori dan menerima sedikit risiko menyajikan sesuatu yang sedikit ketinggalan zaman, dan sebagai imbalannya Anda mendapatkan kecepatan, beban yang lebih rendah, dan biaya yang lebih rendah. Ketiga keuntungan tersebut adalah alasan mengapa caching muncul di setiap lapisan, bukan hanya satu.
Kecepatan adalah keuntungan yang jelas: menyajikan salinan dari penyimpanan terdekat lebih baik daripada menghitung ulang hasilnya atau mengirimkannya melalui jaringan. Manfaat kedua adalah pengurangan beban pada sumber. Setiap permintaan yang dijawab oleh cache adalah permintaan yang tidak perlu ditangani oleh basis data atau server asal, yang menjaga sistem tetap berjalan selama lonjakan lalu lintas. Yang ketiga adalah penghematan biaya: menyajikan byte yang di-cache dari node tepi lebih murah daripada menghasilkan byte baru dan mengirimkannya dari server pusat, dan ketika Anda perlu mengakses data berulang kali, penghematan itu akan bertambah dengan cepat.
Manfaat nyata dan terukur bagi pengguna dari peningkatan kinerja aplikasi sangat besar. Riset Google tahun 2018 tentang situs web seluler menemukan bahwa pengurangan waktu pemuatan satu detik saja dapat meningkatkan konversi hingga 27 persen, sementara studi Aberdeen Group tahun 2012 yang banyak dikutip menyebutkan bahwa penundaan satu detik mengakibatkan penurunan konversi sebesar 7 persen. Halaman yang lebih cepat membuat pengunjung tetap berada di situs. Caching adalah salah satu cara termurah untuk mencapai hal tersebut.
| Jenis cache | Di mana ia tinggal | Apa yang disimpannya | Siapa yang mengelolanya? | Masa hidup tipikal |
|---|---|---|---|---|
| Cache CPU (L1/L2/L3) | Pada prosesor | Instruksi dan data penting | Perangkat keras, otomatis | Mikrodetik |
| Cache browser | Perangkat Anda | HTML, CSS, JS, gambar, font | Peramban web Anda | Jam hingga satu tahun |
| Cache aplikasi | Memori server aplikasi | Hasil kueri, sesi | Pengembang (Redis, Memcached) | Detik hingga jam |
| Cache server/CDN | Server tepi di seluruh dunia | Halaman, media, balasan API | Pemilik situs dan CDN | Per Cache-Control TTL |
| Cache DNS | Sistem operasi, router, resolver | Pencarian domain ke IP | Penyelesai DNS | 5 menit hingga 24 jam |
Apakah Anda perlu menghapus data cache, dan kapan?
Orang-orang menganggap membersihkan cache seperti tugas rutin dalam daftar perawatan. Abaikan saja daftar periksa itu. Ini sebenarnya hanya alat pemecahan masalah, tidak lebih. Hampir setiap hari, biarkan data cache tetap di tempatnya, karena secara diam-diam data tersebut membuat setiap situs yang Anda kunjungi kembali memuat lebih cepat.
Jadi, kapan membersihkan cache sepadan dengan usaha yang dikeluarkan? Sejujurnya, hanya ada tiga situasi. Sebuah situs web rusak atau terus menampilkan versi cache yang usang setelah pembaruan, dan salinan lama di cache browser hampir selalu menjadi penyebabnya; membersihkan cache memaksa pengunduhan ulang yang bersih. Anda telah menggunakan komputer bersama atau publik dan ingin jejak lokal dari apa yang Anda lihat dihapus. Atau ponsel Anda kehabisan ruang penyimpanan dan Anda perlu mengembalikan ruang tersebut, karena cache browser dapat membengkak hingga beberapa gigabyte dengan sendirinya. Di luar itu, membersihkan cache tidak memberikan manfaat apa pun. Ini memperlambat kunjungan Anda berikutnya ke setiap situs web karena browser membangun kembali salinannya, dan beberapa browser akan mengeluarkan Anda dari akun dalam prosesnya. Hal yang paling sering disalahpahami orang: membersihkan cache tidak menghapus cookie atau kata sandi yang tersimpan. Itu tersimpan di penyimpanan terpisah dan tetap ada setelah penghapusan cache, kecuali Anda sengaja menghapusnya juga.
| Browser | Di mana harus menghapus cache? |
|---|---|
| Chrome | Pengaturan, Privasi dan keamanan, Hapus data penjelajahan, Gambar dan file yang di-cache |
| Firefox | Pengaturan, Privasi dan Keamanan, Cookie dan Data Situs, Hapus Data |
| Safari | Pengaturan, Safari, Hapus Riwayat dan Data Situs Web |
| Tepian | Pengaturan, Privasi, Pilih apa yang ingin dihapus |
Cache vs cookie vs buffer: menghilangkan kebingungan
Tiga kata, yang seringkali membingungkan, semuanya tentang menyimpan data. Masing-masing memiliki fungsi yang berbeda. Cache menyimpan salinan konten sehingga Anda dapat mengaksesnya lebih cepat di lain waktu. Cookie adalah catatan kecil yang ditinggalkan situs untuk mengingat Anda: sesi login, pengaturan bahasa, preferensi yang tersimpan. Cookie membawa identitas, bukan konten. Buffer berbeda lagi. Buffer menyimpan data yang sedang dalam perjalanan, seperti beberapa detik video yang dimuat oleh streaming sebelum Anda menontonnya. Cara paling singkat untuk membedakannya: data yang di-cache tetap ada untuk digunakan kembali, cookie mengingat siapa Anda, dan buffer akan kosong begitu digunakan.
Hal-hal yang perlu diingat tentang cache dan caching.
Begitu Anda melihat cache sebagai sesuatu yang tidak lebih dari "menyimpan salinan hal yang lambat di dekat tempat yang dibutuhkan," itu berhenti terlihat seperti fitur perangkat keras dan mulai terlihat seperti kebiasaan yang terjadi di seluruh komputasi, dari pengambilan data 0,7 nanodetik pada CPU hingga salinan halaman ini yang berada di server tepi di dekat kota Anda. Pelajaran praktisnya adalah yang belum dipelajari oleh web: sebagian besar kecepatan itu gratis dan sebagian besar situs masih melewatkannya. Lain kali halaman terbuka dengan cepat sebelum Anda sempat berkedip, Anda akan tahu persis salinan mana yang menghemat waktu Anda.