Dasar-Dasar Caching Output
Simpan respons dalam cache untuk mengurangi beban kerja.
Dasar-Dasar Caching Output adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.
Apa Itu Penyimpanan Keluaran?
Penyimpanan keluaran menyimpan seluruh respons HTTP dari suatu titik akhir agar permintaan berulang dapat dilayani dari tembolok tanpa menjalankan kembali penangannya. Hal ini sangat mengurangi latensi dan beban untuk titik akhir yang banyak digunakan untuk membaca data.
// First call -> handler runs, response stored
// Next calls -> response served from cachePenyimpanan Keluaran vs Penyimpanan Respons
Penyimpanan keluaran bawaan (ditambahkan pada .NET 7) menyimpan respons di peladen dan memberi Anda kendali penuh. Penyimpanan respons yang lebih lama hanya mengirim header tembolok HTTP dan bergantung pada klien atau proksi untuk mematuhinya.
// Output caching: server-side store you control
// Response caching: just Cache-Control headersAddOutputCache
Daftarkan layanan dengan AddOutputCache.
builder.Services.AddOutputCache();UseOutputCache
Tambahkan perangkat perantara ke alur pemrosesan dengan UseOutputCache. Letakkan setelah perutean dan, jika ada, setelah CORS.
var app = builder.Build();
app.UseOutputCache();
app.MapControllers();CacheOutput pada Titik Akhir
Aktifkan penembolokan pada titik akhir dengan CacheOutput (API minimal) atau atribut [OutputCache] (pengendali).
app.MapGet("/products", GetProducts)
.CacheOutput();
// Controller:
// [OutputCache]
// public IActionResult Get() => Ok(...);Menetapkan Kedaluwarsa
Atur berapa lama respons tetap tersimpan dalam tembolok dengan Expire.
app.MapGet("/products", GetProducts)
.CacheOutput(policy => policy.Expire(TimeSpan.FromSeconds(30)));Apa yang Disimpan dalam Tembolok
Secara bawaan, hanya permintaan GET dan HEAD dengan status 200 yang disimpan dalam tembolok, dan hanya jika tidak ada Set-Cookie atau otorisasi yang digunakan - menyimpan respons terautentikasi dan khusus pengguna dalam tembolok secara keliru berbahaya.
// Cached by default: GET/HEAD, 200, no cookies/authMembedakan Berdasarkan String Kueri
Dua permintaan ke jalur yang sama dengan string kueri berbeda biasanya harus disimpan secara terpisah dalam tembolok. Gunakan SetVaryByQuery.
app.MapGet("/search", Search)
.CacheOutput(policy => policy
.Expire(TimeSpan.FromSeconds(60))
.SetVaryByQuery("q", "page"));Membedakan Berdasarkan Tajuk
Anda dapat membedakan kunci tembolok berdasarkan tajuk - misalnya, untuk menyajikan salinan tersimpan yang berbeda untuk setiap Accept-Language.
policy.SetVaryByHeader("Accept-Language");Kebijakan Dasar untuk Semuanya
AddBasePolicy menerapkan bawaan ke setiap titik akhir, yang masih dapat ditimpa oleh setiap titik akhir secara individual.
builder.Services.AddOutputCache(options =>
{
options.AddBasePolicy(policy =>
policy.Expire(TimeSpan.FromSeconds(10)));
});Menonaktifkan untuk Titik Akhir
Jika kebijakan dasar menyimpan semuanya dalam tembolok, kecualikan titik akhir dinamis dengan NoCache.
app.MapGet("/cart", GetCart)
.CacheOutput(policy => policy.NoCache());Pemeriksaan Singkat
Pastikan Anda memahami perbedaan antara kedua fitur penembolokan tersebut.
Ringkasan
Anda telah mempelajari dasar-dasar penembolokan keluaran:
AddOutputCache+UseOutputCachemengaktifkan penembolokan di sisi server.CacheOutput/[OutputCache]mengaktifkan penembolokan pada titik akhir;Expiremenetapkan durasinya.- Secara bawaan, hanya respons GET/HEAD dengan status 200 yang tidak memiliki autentikasi atau cookie yang disimpan dalam tembolok.
SetVaryByQuerydanSetVaryByHeadermembentuk kunci tembolok.
Berikutnya: kebijakan tembolok dan penghapusan entri.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar Caching Output” gratis?
Ya — teks lengkap “Dasar-Dasar Caching Output” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dasar-Dasar Caching Output”?
Simpan respons dalam cache untuk mengurangi beban kerja. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Dasar-Dasar Caching Output” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Algoritme Pembatasan Laju
- Mengonfigurasi Middleware Pembatasan Laju
- Dasar-Dasar Caching Output
- Kebijakan dan Invalidasi Cache