Praktik terbaik dalam caching di ASP.Net

Caching adalah strategi manajemen keadaan yang sering diadopsi di ASP.Net untuk meningkatkan kinerja aplikasi dengan meminimalkan konsumsi sumber daya di sistem Anda. Jika digunakan dengan benar, ini dapat meningkatkan kinerja aplikasi Anda secara signifikan dengan menyimpan halaman wWb secara keseluruhan atau sebagian, atau bahkan menyimpan data aplikasi di seluruh permintaan HTTP. Caching memungkinkan halaman Web dirender lebih cepat, dan penggunaan cache yang tepat meminimalkan atau mengurangi hit database atau konsumsi sumber daya server.

Caching di ASP.Net terdiri dari tiga jenis berikut:

  1. caching keluaran halaman
  2. cache fragmen halaman
  3. cache data

Cache keluaran halaman

Ini adalah bentuk cache di ASP.Net yang menyimpan salinan halaman Web Anda di cache memori sehingga permintaan berikutnya untuk halaman Web yang sama dapat diambil langsung dari cache - output yang di-cache dikirim ke aplikasi. Ini sangat meningkatkan kinerja aplikasi. Cuplikan kode berikut menunjukkan bagaimana Anda dapat menerapkan cache keluaran halaman.

Opsi VaryByParam membantu Anda menentukan variabel dalam Permintaan Http yang memerlukan entri cache baru. Opsi lain yang memungkinkan termasuk: VaryByHeader dan VaryByCustom. Anda juga dapat menentukan Lokasi dan Durasi dalam perintah OutputCache - Anda dapat menggunakan ini untuk menentukan lokasi cache dan juga durasi halaman Web harus di-cache.

Caching fragmen halaman

Cache fragmen halaman adalah strategi cache di mana halaman Web di-cache sebagian - hanya fragmen halaman Web yang di-cache, bukan seluruh halaman Web. Anda dapat menggunakan sintaks yang sama sebagai cache keluaran halaman. Namun, Anda perlu menerapkan atribut OutputCache ke kontrol pengguna alih-alih halaman Web. Cache fragmen berguna ketika Anda hanya perlu meng-cache sebagian dari halaman Web Anda - biasanya dalam situasi di mana halaman Web Anda berisi campuran bagian umum dan dinamis. Sebagai contoh, Anda dapat memiliki halaman Web yang berisi campuran item menu dan juga bagian dinamis tertentu yang perlu diisi dan sering diperbarui dari database.

Caching data

ASP.Net memperlihatkan Cache API bagi Anda untuk menyimpan data dalam cache untuk diambil nanti. Sintaks untuk menyimpan data di Cache menggunakan Cache API diberikan di bawah ini.

Cache["key"] = "value";

Anda juga dapat menggunakan metode Tambah atau Sisipkan. Untuk menjauhkan entri dari cache, Anda dapat menggunakan metode Remove () dari kelas Cache. Metode Insert () dari kelas Cache memungkinkan Anda menentukan ketergantungan cache. Ketergantungan cache adalah strategi yang memastikan bahwa ketika data dalam penyimpanan data (dari mana cache telah diisi) berubah, cache kemudian akan segera diisi kembali. Saat data di penyimpanan data berubah, cache akan kedaluwarsa, mengakibatkan cache diisi kembali dengan data terbaru. Anda dapat membaca lebih lanjut tentang ini dari artikel MSDN ini.

Praktik terbaik

Anda harus menyimpan cache sesering mungkin dan menyimpan data dengan benar di setiap lapisan aplikasi Anda. Saat menggunakan cache data, Anda harus menerapkan strategi yang tepat untuk memastikan bahwa data di cache sinkron dengan data di penyimpanan data. Anda dapat memanfaatkan pengelola cache terdistribusi seperti Memcached sehingga strategi cache Anda juga dapat diskalakan dengan baik dan memberikan peningkatan kinerja yang cukup - Anda dapat menggunakan Memcached untuk menyimpan data besar. Anda harus memastikan bahwa Anda menyimpan data yang relatif basi saja - tidak ada gunanya menyimpan data dalam cache yang akan sering berubah seiring waktu. Selain itu, data yang kemungkinan tidak akan digunakan kembali sebaiknya tidak disimpan di cache. Anda tidak boleh menggunakan SqlDependency atau SqlCacheDependency secara berlebihan.

Dan sekarang, mari kita ketahui kelemahan dari caching juga. Objek cache hanya tersedia untuk domain aplikasi saat ini. Jadi, jika Anda ingin menyimpan data di cache dan membuatnya dapat diakses di seluruh web farm, itu tidak mungkin. Anda harus memanfaatkan cache terdistribusi seperti Windows Server AppFabric Caching atau kerangka kerja cache terdistribusi lainnya agar data dalam cache dapat diakses secara global di sebuah Web farm.

Caching adalah mekanisme yang ampuh untuk meningkatkan kinerja aplikasi dengan menyimpan data yang relatif lama di memori sehingga data yang sama dapat diambil dari memori cache di lain waktu. Saya akan membahas lebih lanjut tentang topik ini dengan contoh kode kehidupan nyata di posting saya selanjutnya di sini.