Amalan terbaik dalam membuat cache di ASP.Net

Caching adalah strategi pengelolaan negara yang sering diadopsi di ASP.Net untuk meningkatkan prestasi aplikasi dengan meminimumkan penggunaan sumber dalam sistem anda. Jika digunakan dengan betul, ia dapat meningkatkan prestasi aplikasi anda dengan menyimpan halaman wWb secara keseluruhan atau sebahagian, atau bahkan menyimpan data aplikasi di seluruh permintaan HTTP. Caching membolehkan halaman Web diberikan lebih cepat, dan penggunaan cache yang tepat dapat meminimumkan atau mengurangkan hit pangkalan data atau penggunaan sumber pelayan.

Caching di ASP.Net adalah daripada tiga jenis berikut:

  1. cache output halaman
  2. cache cebisan halaman
  3. cache data

Cache output halaman

Ini adalah bentuk caching 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 cache dikirim ke aplikasi. Ini meningkatkan prestasi aplikasi dengan ketara. Coretan kod berikut menunjukkan bagaimana anda dapat melaksanakan cache output halaman.

Pilihan VaryByParam membantu anda menentukan pemboleh ubah dalam Permintaan Http yang memerlukan entri cache baru. Pilihan lain yang mungkin termasuk: VaryByHeader dan VaryByCustom. Anda juga dapat menentukan Lokasi dan Durasi dalam arahan OutputCache - anda boleh menggunakannya untuk menentukan lokasi cache dan juga tempoh di mana halaman Web harus di-cache masing-masing.

Cache serpihan halaman

Caching fragmen halaman adalah strategi cache di mana halaman Web di-cache sebagian - hanya fragmen halaman Web yang di-cache, bukan seluruh halaman Web. Anda boleh menggunakan sintaks yang sama dengan cache output halaman. Namun, anda perlu menerapkan atribut OutputCache ke kawalan pengguna dan bukannya halaman Web. Fragment caching sangat berguna apabila anda hanya memerlukan cache sebahagian dari halaman Web anda - biasanya dalam situasi di mana halaman Web anda mengandungi gabungan bahagian yang umum dan dinamik. Sebagai contoh, anda dapat memiliki halaman Web yang berisi campuran item menu dan juga bahagian dinamik tertentu yang perlu diisi dan dikemas kini dari pangkalan data dengan kerap.

Penyimpanan data

ASP.Net mendedahkan Cache API untuk anda menyimpan data dalam cache untuk diambil kemudian. Sintaks untuk menyimpan data di Cache menggunakan Cache API diberikan di bawah.

Cache["key"] = "value";

Anda juga boleh menggunakan kaedah Tambah atau Masukkan. Untuk menjauhkan entri dari cache, anda boleh menggunakan kaedah Remove () dari kelas Cache. Kaedah Insert () dari kelas Cache membolehkan anda menentukan kebergantungan cache. Ketergantungan cache adalah strategi yang memastikan bahwa ketika data di penyimpanan data (dari mana cache diisi) berubah, cache kemudian akan diisi ulang segera. Ketika data di penyimpanan data berubah, cache akan habis masa berlakunya, mengakibatkan cache diisi ulang dengan data terbaru. Anda boleh membaca lebih lanjut mengenai perkara ini dari artikel MSDN ini.

Amalan terbaik

Anda harus menyimpan cache sesering mungkin dan menyimpan data dengan betul di setiap lapisan aplikasi anda. Ketika menggunakan cache data, Anda harus menerapkan strategi yang tepat untuk memastikan data di cache selaras dengan data di penyimpanan data. Anda boleh memanfaatkan pengurus cache yang diedarkan seperti Memcached sehingga strategi cache anda juga dapat ditingkatkan dengan baik dan memberikan peningkatan prestasi yang cukup besar - anda dapat menggunakan Memcached untuk menyimpan data yang besar. Anda harus memastikan bahawa anda menyimpan data yang relatif basi sahaja - tidak ada gunanya menyimpan data yang sering berubah dari semasa ke semasa. Juga, data yang tidak mungkin digunakan kembali tidak boleh disimpan di dalam cache. Anda tidak boleh menggunakan SqlDependency atau SqlCacheDependency secara berlebihan.

Dan sekarang, mari kita ketahui kelemahan cache juga. Objek cache hanya tersedia untuk domain aplikasi semasa. Oleh itu, jika anda ingin menyimpan data dalam cache dan membuatnya dapat diakses di ladang web, itu bukan kemungkinan. Anda harus memanfaatkan cache yang diedarkan seperti Windows Server AppFabric Caching atau kerangka kerja cache yang diedarkan yang lain agar data dalam cache dapat diakses secara global di ladang Web.

Caching adalah mekanisme yang kuat untuk meningkatkan prestasi aplikasi dengan menyimpan data yang relatif basi dalam memori sehingga yang sama dapat diambil dari memori cache di kemudian hari. Saya akan membincangkan lebih lanjut mengenai topik ini dengan contoh kod kehidupan sebenar dalam catatan masa depan saya di sini.