Pola dan Kedaluwarsa Cache
Terapkan cache-aside dan tetapkan waktu kedaluwarsa.
Pola dan Kedaluwarsa Cache 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.
Pola Penggunaan Cache
Cara Anda membaca dan menulis cache disebut sebuah pola. Pola yang paling umum dalam aplikasi web adalah cache-aside, yaitu kode Anda mengelola cache di sekitar sumber data.
Pola Cache-Aside
Cache-aside, atau pemuatan malas, bekerja dalam tiga langkah: periksa cache; jika data tidak ditemukan, muat dari sumber lalu isi cache; kemudian kembalikan nilainya. Cache diisi sesuai permintaan.
async Task<string> GetForecastAsync(string city)
{
string key = $"forecast:{city}";
string cached = await _cache.GetStringAsync(key);
if (cached is not null) return cached;
string fresh = await _api.LoadForecastAsync(city);
await _cache.SetStringAsync(key, fresh);
return fresh;
}Mengapa Kedaluwarsa Itu Penting
Data dalam cache dapat menjadi usang. Kedaluwarsa secara otomatis mengeluarkan entri setelah jangka waktu tertentu sehingga pembacaan berikutnya memuat data terbaru, dengan menyeimbangkan kinerja dan tingkat keusangan.
Kedaluwarsa Absolut
Kedaluwarsa absolut mengeluarkan entri pada waktu tertentu yang tetap, terlepas dari penggunaannya. Gunakan ini ketika data hanya valid selama jangka waktu yang diketahui.
var options = new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10)
};Kedaluwarsa Geser
Kedaluwarsa geser mengatur ulang penghitung waktu setiap kali data diakses. Entri tetap ada selama digunakan secara teratur, tetapi dikeluarkan setelah tidak digunakan selama jangka waktu tertentu. Cocok untuk data seperti sesi.
var options = new DistributedCacheEntryOptions
{
SlidingExpiration = TimeSpan.FromMinutes(5)
};Menggabungkan Keduanya
Anda dapat menetapkan keduanya: kedaluwarsa geser menjaga data yang sering digunakan tetap tersedia, sedangkan batas absolut menjamin entri tidak pernah hidup lebih lama dari maksimum tertentu dan pada akhirnya memaksa penyegaran.
var options = new DistributedCacheEntryOptions
{
SlidingExpiration = TimeSpan.FromMinutes(5),
AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(1)
};Menerapkan Options Saat Menyimpan
Teruskan options sebagai argumen ketiga ke SetStringAsync atau SetAsync agar entri menyimpan kebijakan kedaluwarsanya sendiri.
await _cache.SetStringAsync(key, fresh, options);Penulisan Langsung dan Pembatalan Cache
Ketika data sumber berubah, keluarkan atau perbarui cache agar pembacaan tidak menyajikan nilai usang. Cache-aside biasanya memasangkan operasi penulisan dengan RemoveAsync pada kunci yang terdampak.
await _repository.UpdateForecastAsync(city, value);
await _cache.RemoveAsync($"forecast:{city}");Mencegah Lonjakan Permintaan Cache
Jika kunci yang populer kedaluwarsa, banyak permintaan dapat memuatnya kembali secara bersamaan, sehingga terjadi lonjakan. Kurangi dampaknya dengan penguncian singkat, waktu kedaluwarsa yang sedikit diacak, atau penyegaran di latar belakang agar hanya satu permintaan yang membangun ulang entri.
Memilih Nilai Kedaluwarsa
Pilih durasi berdasarkan seberapa sering data berubah dan seberapa banyak keusangan yang dapat diterima. Data referensi dapat menggunakan TTL yang panjang; data yang berubah cepat memerlukan TTL yang singkat atau pembatalan berbasis peristiwa.
Biaya Data yang Tidak Ditemukan
Setiap data yang tidak ditemukan dalam cache memerlukan pemuatan dari sumber, jadi rancang kunci dan TTL untuk memaksimalkan tingkat keberhasilan. Pantau rasio keberhasilan dan kegagalan untuk menyempurnakan cache Anda seiring waktu.
Pemeriksaan Singkat
Uji pola cache dan kedaluwarsa.
Rangkuman
Pola cache-aside memeriksa cache, memuat data jika tidak ditemukan, lalu mengisi cache. Kedaluwarsa absolut mengeluarkan entri pada waktu tetap; kedaluwarsa geser mengatur ulang penghitung waktu saat diakses; gabungkan keduanya dengan DistributedCacheEntryOptions. Batalkan cache saat menulis menggunakan RemoveAsync, cegah lonjakan permintaan, dan sesuaikan TTL serta kunci berdasarkan pola akses dan tingkat keusangan yang dapat diterima.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola dan Kedaluwarsa Cache” gratis?
Ya — teks lengkap “Pola dan Kedaluwarsa Cache” 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 “Pola dan Kedaluwarsa Cache”?
Terapkan cache-aside dan tetapkan waktu kedaluwarsa. 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 “Pola dan Kedaluwarsa Cache” 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
- Abstraksi IDistributedCache
- Menghubungkan ke Redis
- Pola dan Kedaluwarsa Cache
- Caching Objek Berserialisasi