Trace Id is missing
Lompat ke konten utama

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 PostgreSQLAzure 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

Orang sering bingung antara cache terdistribusi dengan penyimpanan sesi, yang memang mirip, tetapi dengan persyaratan dan tujuan erbeda. Daripada menggunakan cache terdistribusi untuk melengkapi database, pengembang mengimplementasikan penyimpanan sesi, yang merupakan penyimpanan data sementara pada lapisan pengguna, untuk profil, pesan, dan data pengguna lainnya dalam aplikasi berorientasi sesi seperti aplikasi web.

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.

[1] Klaim performa didasarkan pada data dari studi yang dilakukan oleh Microsoft dan dilakukan oleh GigaOm pada Oktober 2020. Studi ini membandingkan performa aplikasi pengujian menggunakan database Azure dengan dan tanpa mengimplementasikan Azure Cache for Redis sebagai solusi penyimpanan di cache. Azure SQL Database dan Azure Database for PostgreSQL digunakan sebagai elemen database dalam studi ini. Instans Tujuan Umum 2 vCore Gen 5 Azure SQL Database dan instans Tujuan Umum 2 vCore Azure Database for PostgreSQL digunakan dengan instans Azure for Redis P1 Premium berukuran 6 gigabyte. Hasil ini dibandingkan dengan 8, 16, 24, dan 32 vCore Gen5 instans Tujuan Umum Azure SQL Database, serta 8, 16, 24, dan 32 vCore instans Tujuan Umum Azure Database for PostgreSQL tanpa Azure Cache for Redis. Data tolok ukur diambil dari Uji Beban Database Aplikasi Web GigaOm yang menyimulasikan aplikasi web umum dan database ujung-belakang yang dibombardir oleh permintaan HTTP yang meningkat. Hasil aktual mungkin berbeda berdasarkan konfigurasi dan wilayah. Lihat studi selengkapnya.

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.