Arti penyimpanan di cache
Penyimpanan di cache menyimpan salinan data yang dapat digunakan kembali dan sering diakses di memori agar aplikasi menghindari pengulangan panggilan database dan menampilkan hasil lebih cepat.
Penyimpanan di cache menyimpan salinan data yang dapat digunakan kembali dan sering diakses di memori agar aplikasi menghindari pengulangan panggilan database dan menampilkan hasil lebih cepat.
Penyimpanan di cache adalah praktik menyimpan data kunci-nilai di memori sementara (seperti bahasa kueri terstruktur nonrelasional database (NoSQL)) agar aplikasi dapat mengambilnya lebih cepat dibandingkan penyimpanan konvensional. Di arsitektur penyimpanan cloud—di mana permintaan sering melintasi jaringan dan menggunakan layanan bersama—penyimpanan di cache dapat membantu menjaga waktu respons tetap rendah dan mengurangi pekerjaan berulang.
Sebagian besar sistem menyimpan “sumber kebenaran” yang tahan lama (database) untuk himpunan data lengkap, lalu menyimpan cache untuk subset sementara yang sering dibaca. Saat permintaan masuk, aplikasi memeriksa cache terlebih dahulu; jika data ada, hasil dikembalikan dengan cepat tanpa perlu mengakses backend lagi. Pengembang juga menyimpan data yang sudah diproses di cache dan menggunakannya kembali untuk melayani permintaan lebih cepat dibandingkan kueri standar ke database relasional, database SQL, atau database PostgreSQL sumber terbuka.
Kandidat yang baik mencakup data yang dibaca berulang kali dan data yang jarang berubah (misalnya, informasi produk dan harga atau sumber daya statis bersama yang mahal untuk dibuat).
Jika suatu operasi mengubah data atau melakukan perhitungan rumit, melakukan penyimpanan di cache pada hasilnya dapat menghindari komputasi ulang untuk permintaan berikutnya.
Pengembang menggunakan cache bertingkat (“lapisan cache”) untuk menyimpan berbagai jenis data dalam cache terpisah sesuai permintaan. Menambahkan satu atau beberapa lapisan cache dapat meningkatkan throughput dan latensi pada lapisan data.
Penyimpanan dalam memori sering digunakan untuk menyimpan data sesi bervolume besar, seperti input pengguna, item keranjang belanja, atau preferensi personalisasi dalam waktu singkat. Untuk aplikasi stateful, tim juga menyimpan keadaan sesi di cache agar aplikasi dapat bersifat stateless.
Penyimpanan di cache dapat meningkatkan performa dengan beberapa cara konkret:
Dalam banyak desain cloud, cache ditempatkan di samping penyimpanan data utama (seperti database). Penyimpanan utama menyimpan himpunan data lengkap yang tahan lama di cloud server, sementara cache menyimpan subset yang berukuran lebih kecil dan sementara yang dibaca dengan lebih cepat.
Konfigurasi yang umum adalah lapisan cache terpisah, atau cache yang berada di dalam aplikasi atau tingkat database—dipilih berdasarkan kebutuhan di mana Anda perlu membaca data dengan cepat.
Beberapa sistem menggunakan penyimpanan di cache bertingkat (“lapisan cache”) agar jenis data yang berbeda berada di cache yang berbeda berdasarkan kebutuhan. Menambahkan satu atau beberapa lapisan cache dapat meningkatkan throughput dan latensi untuk lapisan data serta mengurangi biaya keseluruhan dengan menurunkan beban backend.
Tim biasanya menyimpan data di cache yang termasuk dalam beberapa kategori berikut:
Ada beberapa cara standar yang digunakan aplikasi untuk membaca dan menulis ke cache. Berikut pola paling umum dan arti praktiknya.
Menggunakan lapisan cache dapat meningkatkan throughput dan latensi dengan melayani permintaan umum dari cache alih-alih berulang kali mengkueri penyimpanan back-end. Hal ini dapat mengurangi kebutuhan untuk menskalakan infrastruktur database karena lebih sedikit permintaan yang menjangkau database sejak awal.
Untuk aplikasi dengan lonjakan penggunaan, cache dalam memori dapat membantu mengurangi latensi dengan menjaga data yang sering diminta dekat dengan lokasi penggunaannya.
Gunakan ini sebagai titik awal saat memilih alur kerja Anda:
Penyimpanan di cache meningkatkan performa aplikasi karena membaca dari cache dalam memori lebih cepat daripada membaca dari penyimpanan data berbasis disk. Saat lebih banyak permintaan dilayani dari cache, sistem mengirim lebih sedikit kueri ke database backend, yang dapat mengurangi kebutuhan untuk menskalakan infrastruktur database dan menurunkan biaya terkait.
Penyimpanan di cache membantu mengurangi pekerjaan berulang. Data yang dibaca berulang kali—atau yang mahal untuk dibuat—dapat disimpan sekali dan digunakan kembali. Jika suatu operasi melakukan penghitungan yang rumit atau mentransformasi data, menyimpan hasilnya di cache akan mengurangi perhitungan berulang untuk permintaan berikutnya.
Banyak situs menyimpan output halaman di cache (seperti HTML dan skrip klien) agar server dapat mengembalikan output yang di-cache alih-alih menjalankan ulang kode halaman setiap kali. Penyimpanan di cache juga mendukung skenario multimedia web melalui cache web dan penyimpanan di cache jaringan, seperti content delivery network (CDN).
Aplikasi sering menyimpan subset data sementara di dalam cache untuk pengambilan cepat, sementara database utama menyimpan himpunan data lengkap yang tahan lama. Penyimpanan di cache data yang telah diproses dan menggunakannya kembali dapat melayani permintaan lebih cepat daripada kueri database standar.
Tim sering menambahkan satu atau beberapa lapisan cache untuk meningkatkan throughput dan latensi, melayani kueri umum dari cache, dan mengurangi beban database. Cache dalam memori dapat membantu saat terjadi lonjakan penggunaan dan permintaan throughput meningkat, sehingga mengurangi latensi selama periode tersebut.
Penyimpanan di cache sering digunakan untuk menyimpan data sesi berumur pendek dalam volume besar (seperti input pengguna atau preferensi personalisasi) di penyimpanan dalam memori. Beberapa tim juga menyimpan keadaan sesi di cache agar aplikasi stateful dapat menjaga lapisan aplikasi tetap stateless. Untuk sistem operasional, data yang jarang berubah—seperti informasi produk dan harga—adalah target penyimpanan di cache yang umum.
Cache browser menyimpan salinan sumber daya statis di perangkat pengguna agar kunjungan berikutnya dapat menggunakan kembali file tersebut alih-alih mengunduhnya kembali.
Penyimpanan di cache sisi server dilakukan di proses yang menjalankan layanan bisnis secara jarak jauh, bukan di perangkat pengguna akhir. Cache sisi server sering kali bersifat privat (lokal untuk satu instans aplikasi) atau bersama (digunakan oleh banyak instans aplikasi).
CDN menyimpan konten di cache di server edge yang lebih dekat dengan pengguna akhir, sehingga permintaan tidak selalu harus kembali ke tempat asal. Tidak seperti cache browser (satu pengguna), cache CDN bersifat bersama—permintaan dari satu pengguna dapat mengisi konten yang kemudian diterima pengguna lain.
Penyimpanan di cache bukan hanya sebuah pola komputasi cloud—lapisan perangkat keras dan memori juga menggunakannya.
Cache CPU adalah area memori kecil dan cepat di dekat (atau pada) prosesor yang menyimpan salinan data dan instruksi yang sering digunakan untuk mengurangi waktu menunggu memori utama.
Cache memori (dalam-memori) adalah jenis cache perangkat lunak paling sederhana: Penyimpanan dalam memori yang berada di ruang alamat satu proses dan diakses langsung oleh proses tersebut.
Cache terdistribusi mencakup beberapa server sehingga cache dapat meningkat dan kapasitas transaksionalnya melampaui satu komputer. Banyak layanan cache bersama menggunakan kluster server dan mendistribusikan data yang di-cache di seluruh kluster; penskalaan cache bisa sesederhana menambahkan lebih banyak server. Beberapa desain terdistribusi juga melapisi cache, sehingga saat tidak menemukan data di satu lapisan, data diambil dari penyedia hulu lalu hasilnya disimpan secara lokal untuk permintaan berikutnya.
Penyimpanan di cache menyimpan data yang sering diakses lebih dekat ke tempat data digunakan, sehingga dapat meningkatkan waktu respons dan membantu sistem menangani lebih banyak permintaan bersamaan. Ini juga dapat mengurangi hambatan di penyimpanan data asli, misalnya saat database memiliki koneksi terbatas.
Dalam aplikasi terdistribusi, penyimpanan di cache sering dilakukan di lebih dari satu tempat—sisi klien (seperti browser) dan sisi server (di aplikasi atau layanan cache bersama).
Mulai dari data kecil dan fokus pada data yang memberi hasil paling jelas:
Cache biasanya menyimpan salinan data dari penyimpanan utama, jadi pembaruan data perlu diperhatikan:
Penyimpanan di cache adalah blok pembangun inti untuk sistem modern karena cocok untuk banyak arsitektur—dari layanan tunggal hingga aplikasi terdistribusi dan penyampaian di tepi. Untuk cache terkelola dalam memori penyedia cloud, Anda dapat menjelajahi Azure.