Apa itu penyimpanan di cache?
Pengembang dan profesional TI menggunakan penyimpanan di cache untuk menyimpan dan mengakses data nilai kunci dalam memori sementara dengan lebih cepat dan dengan lebih mudah dibandingkan data yang disimpan di penyimpanan data konvensional. Cache berguna dalam beberapa skenario dengan beberapa teknologi, seperti penyimpanan di cache komputer dengan memori akses acak (RAM), penyimpanan di cache jaringan pada jaringan pengiriman konten, cache web untuk data multimedia web, atau cache cloud untuk membantu membuat aplikasi cloud lebih tangguh. Pengembang sering kali merancang aplikasi untuk melakukan cache pada data yang diproses, lalu menggunakannya kembali guna memenuhi permintaan lebih cepat dibandingkan dalam kueri database standar.
Anda dapat menggunakan penyimpanan di cache untuk mengurangi biaya database, memberikan throughput yang lebih tinggi dan latensi yang lebih rendah daripada yang ditawarkan kebanyakan database, serta meningkatkan performa aplikasi cloud dan web.
Bagaimana cara kerja penyimpanan di cache untuk database?
Pengembang dapat melengkapi database utama dengan cache database, yang dapat ditempatkan dalam database ataupun aplikasi, atau disiapkan sebagai lapisan mandiri. Meskipun biasanya bergantung pada database konvensional untuk menyimpan himpunan data yang besar, tahan lama, dan lengkap, cache digunakan untuk menyimpan subset sementara data agar dapat diambil dengan cepat.
Anda dapat menggunakan penyimpanan di cache dengan semua jenis penyimpanan data, termasuk database NoSQL serta database relasional, seperti SQL Server, MySQL, atau MariaDB. Penyimpanan di cache juga berfungsi baik dengan banyak platform data tertentu, seperti Azure Database for PostgreSQL, Azure SQL Database, atau Azure SQL Managed Instance. Sebaiknya teliti jenis penyimpanan data yang paling sesuai dengan persyaratan Anda sebelum mulai mengonfigurasi arsitektur data. Misalnya, Anda ingin memahami postgreSQL sebelum menggunakannya untuk menggabungkan penyimpanan data relasi dan tidak terstruktur.
Manfaat lapisan cache, dan apa itu Redis?
Pengembang menggunakan cache bertingkat yang disebut lapisan cache untuk menyimpan berbagai jenis data dalam cache terpisah sesuai permintaan. Dengan menambahkan satu atau beberapa lapisan cache, Anda dapat meningkatkan performa throughput dan latensi lapisan data secara signifikan.
Redis adalah struktur data dalam memori sumber terbuka populer yang digunakan untuk membangun lapisan cache berkinerja tinggi dan penyimpanan data lainnya. Studi terbaru menunjukkan bahwa menambahkan Azure Cache for Redis ke aplikasi sampel meningkatkan throughput data lebih dari 800 persen dan meningkatkan performa latensi lebih dari 1.000 persen1.
Cache juga dapat mengurangi total biaya kepemilikan (TCO) untuk lapisan data. Dengan menggunakan cache untuk melayani kueri yang paling umum dan mengurangi beban database, Anda dapat mengurangi kebutuhan untuk melakukan provisi berlebih instans database sehingga menghasilkan penghematan biaya yang signifikan dan menurunkan TCO.
Jenis penyimpanan di cache
Strategi penyimpanan di cache bergantung pada cara aplikasi membaca dan menulis data. Apakah aplikasi Anda banyak menulis, atau data ditulis sekali dan sering dibaca? Apakah data yang dikembalikan selalu unik? Pola akses data yang berbeda akan memengaruhi cara Anda mengonfigurasi cache. Jenis penyimpanan di cache yang umum meliputi cache-aside, read-through/write-through, dan write-behind/write-back.
Cache-aside
Untuk aplikasi dengan beban kerja banyak membaca, pengembang sering kali menggunakan pola pemrograman di cache-aside, atau "side-cache." Side-cache ditemukan di luar aplikasi, yang kemudian dapat terhubung dengan cache untuk membuat kueri dan mengambil data atau secara langsung dengan database jika data tidak ada dalam cache. Saat aplikasi mengambil data, aplikasi akan menyalinnya ke cache untuk kueri di masa mendatang.
Anda dapat menggunakan side-cache untuk membantu meningkatkan performa aplikasi, menjaga konsistensi antara cache dan penyimpanan data, serta menjaga agar data di cache tidak kedaluwarsa.
Cache read-through/write-through
Cache read-through terus diperbarui, sedangkan penyimpanan di cache write-through, aplikasi menulis data ke cache, lalu ke database. Kedua cache berada sejajar dengan database, dan aplikasi memperlakukannya sebagai penyimpanan data utama.
Cache read-through membantu menyederhanakan aplikasi ketika data yang sama diminta berulang kali, tetapi cache itu sendiri lebih kompleks, sedangkan proses write-through dua langkah dapat menimbulkan latensi. Pengembang memasangkan keduanya untuk membantu memastikan konsistensi data antara cache dan database, mengurangi latensi cache write-through, serta mempermudah pembaruan cache read-through.
Dengan penyimpanan di cache read-through/write-through, pengembang dapat menyederhanakan kode aplikasi, meningkatkan skalabilitas cache, dan meminimalkan beban database.
Cache write-behind/write-back
Dalam skenario ini, aplikasi menulis data ke cache, yang langsung dikenali, lalu cache itu sendiri menulis data kembali ke database di latar belakang. Cache write-behind, terkadang dikenal sebagai cache write-back, paling cocok untuk beban kerja yang banyak menulis, dan meningkatkan performa penulisan karena aplikasi tidak perlu menunggu hingga penulisan selesai sebelum berpindah ke tugas berikutnya.
Cache terdistribusi vs. penyimpanan sesi
Apa itu penyimpanan sesi?
Aplikasi berorientasi sesi melacak tindakan yang dilakukan pengguna saat mereka masuk ke aplikasi. Untuk mempertahankan data tersebut ketika pengguna keluar, Anda dapat menyimpannya di penyimpanan sesi, yang meningkatkan manajemen sesi, mengurangi biaya, dan mempercepat performa aplikasi.
Apa perbedaan penggunaan penyimpanan sesi dengan penyimpanan di cache database?
Dalam penyimpanan sesi, data tidak dibagikan antara pengguna yang berbeda, sedangkan dalam penyimpanan di cache, pengguna yang berbeda dapat mengakses cache yang sama. Pengembang menggunakan penyimpanan di cache untuk meningkatkan performa database atau instans penyimpanan, sementara menggunakan penyimpanan sesi untuk meningkatkan performa aplikasi dengan menulis data ke penyimpanan dalam memori sehingga tidak memerlukan akses database sama sekali.
Data yang ditulis ke penyimpanan sesi biasanya berumur pendek, sedangkan data yang disimpan di cache dengan database utama biasanya dimaksudkan untuk bertahan lebih lama. Penyimpanan sesi memerlukan replikasi, ketersediaan tinggi, dan daya tahan data untuk memastikan bahwa data transaksional tidak hilang dan pengguna tetap terlibat. Di sisi lain, jika data di cache sisi hilang, salinannya selalu ada di database permanen.
Manfaat penyimpanan di cache
Peningkatan kinerja aplikasi
Membaca data dari cache dalam memori jauh lebih cepat daripada mengakses data dari penyimpanan data berdasarkan disk. Selain itu, dengan akses data yang lebih cepat, keseluruhan pengalaman aplikasi meningkat secara signifikan.
Pengurangan penggunaan dan biaya database
Penyimpanan di cache menghasilkan lebih sedikit kueri database, meningkatkan performa, serta mengurangi biaya dengan membatasi kebutuhan untuk menskalakan infrastruktur database dan mengurangi biaya throughput.
Performa scalable dan dapat diprediksi
Instans cache tunggal dapat menangani jutaan permintaan per detik, yang menawarkan tingkat throughput dan skalabilitas yang tidak dapat ditandingi oleh database. Penyimpanan di cache juga menawarkan fleksibilitas yang Anda perlukan saat meningkatkan ataupun meluaskan aplikasi dan penyimpanan data. Kemudian, aplikasi Anda dapat mengizinkan banyak pengguna mengakses file yang sama secara bersamaan, tanpa menambah beban di database ujung-belakang. Selain itu, jika aplikasi sering mengalami lonjakan penggunaan dan throughput yang tinggi, cache dalam memori dapat mengurangi latensi.
Apa kegunaan penyimpanan di cache?
Penyimpanan di cache output
Penyimpanan di cache output meningkatkan performa halaman web dengan menyimpan kode sumber lengkap halaman, seperti HTML dan skrip klien yang dikirimkan server ke browser untuk dirender. Setiap kali pengguna melihat halaman, server akan menyimpan cache kode output dalam memori aplikasi. Dengan begitu, aplikasi dapat melayani permintaan tanpa menjalankan kode halaman atau berkomunikasi dengan server lain.
Penyimpanan di cache data dan penyimpanan di cache database
Kecepatan dan throughput database dapat menjadi faktor kunci dalam performa aplikasi secara keseluruhan. Penyimpanan di cache database digunakan untuk panggilan rutin ke data yang tidak sering berubah, seperti harga atau data inventaris. Dengan begitu, situs web dan aplikasi dapat dimuat lebih cepat sekaligus meningkatkan throughput dan menurunkan latensi pengambilan data dari database ujung belakang.
Menyimpan data sesi pengguna
Pengguna aplikasi sering kali menghasilkan data yang harus disimpan dalam waktu singkat. Penyimpanan data dalam memori seperti Redis sangat cocok untuk menyimpan data sesi dalam jumlah besar secara efisien dan andal, seperti input pengguna, entri keranjang belanja, atau preferensi personalisasi dengan biaya yang lebih rendah daripada penyimpanan atau database.
Kirim pesan kepada perantara dan terbitkan/berlangganan arsitektur
Aplikasi cloud sering kali perlu bertukar data antar layanan, serta dapat menggunakan penyimpanan di cache untuk mengimplementasikan arsitektur publikasi/berlangganan atau perantara pesan yang mengurangi latensi dan mempercepat manajemen data.
Aplikasi dan API
Seperti browser, aplikasi menyimpan file dan data penting untuk memuat ulang informasi tersebut dengan cepat apabila diperlukan. Respons API cache menghapus permintaan atau pemuatan pada server dan database aplikasi sehingga memberikan waktu respons lebih cepat dan performa lebih baik.
Akun gratis
Coba layanan komputasi cloud Azure gratis hingga 30 hari.
Prabayar
Mulai dengan harga prabayar. Tanpa keterikatan di muka, batalkan kapan saja.
Tambahkan lapisan penyimpanan di cache yang gesit ke aplikasi Anda dengan layanan Redis yang dikelola penuh. Pelajari cara memulai Azure Cache for Redis.
Jika Anda ingin menjalankan penyimpanan di cache berbasis file yang fleksibel untuk aplikasi berkinerja tinggi, baca tentang Azure HPC Cache.