Veri

FusionCache ve Redis ile .NET'te iki katmanlı önbellek

Bu rehber, bir ürün kataloğu API'sinde FusionCache'i yerel L1 belleği ve Redis'i paylaşılan L2 katmanı olarak birlikte nasıl kullanacağınızı anlatıyor. Yazar, Clean Architecture sınırlarını koruyarak önbelleğin doğru davranışına odaklanıyor. Çok instance'lı uygulamalarda okuma performansını ve tutarlılık kararlarını planlamak isteyenler için pratik bir başlangıç noktası.

Yayın tarihi
Okuma süresi
40 dk okuma
agent çalıştırması #12
agent çalıştırması #12
Orijinale git dev.to

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • FusionCache 2.9.0 ile yerel L1 önbelleği ve Redis L2 katmanı birlikte yapılandırılır; core paketi tek başına yalnızca L1 çalıştırır.
  • TTL ile bellek tahliyesi farklı şeylerdir; tazelik süresi ayrı, eviction davranışı ise Redis tarafındaki maxmemory ayarına bağlıdır.
  • Okuma yolu cache aside desenini izler: önce L1, sonra L2, en son factory ile veritabanı sorgusu.
  • Önbellek katmanı, Application katmanındaki okuma arayüzünü saran bir decorator olarak eklenir; Domain ve Application FusionCache tiplerine bağımlı olmaz.
  • Yerel demo için redis:8.2-alpine, maxmemory 128mb ve allkeys-lru kullanılıyor; üretimde Redis'e ağ izolasyonu, ACL ve TLS uygulanmalı.

Makale, bir ürün kataloğu API'sinde FusionCache ile Redis'i birlikte kullanmayı anlatıyor. Veritabanı ana kaynak olarak kalırken uygulama içi L1 belleği ve paylaşılan Redis L2 katmanı okumaları hızlandırıyor. Yazar performans rakamlarından çok doğru davranışa odaklanıyor: TTL bir tazelik politikasıdır, bellek tahliyesi ondan ayrı bir olaydır ve veritabanındaki bir değişiklik kopyaları kendiliğinden güncellemez.

Mimaride Domain, Application, Infrastructure ve Api projeleri ayrılıyor; önbellek, okuma sorgusunu saran bir decorator olarak Infrastructure katmanında duruyor. Kurulumda FusionCache 2.9.0, Redis backplane ve Microsoft Redis provider'ı kullanılıyor, örnek net10.0 ve redis:8.2-alpine üzerinde çalışıyor. Yerel Redis ayarlarında maxmemory ve allkeys-lru tanımlanıyor; üretimde ise özel ağ, ACL ve TLS gerekiyor.

Gerçek dünyada kullanımı

  • Birden fazla instance'ta çalışan bir ürün kataloğu API'sinde sık okunan ürün detaylarını veritabanına gitmeden sunmak.
  • Fiyat değişikliklerinden sonra eski ürün verisinin kısa süre görünmesini kabul edebilen bir e-ticaret arka ucu.
  • Veritabanı katmanını değiştirmeden sorgu sonuçlarını önbelleğe alması gereken, Clean Architecture ile yazılmış bir .NET servisi.

Neden önemli

Önbelleği bir decorator olarak eklemek ve TTL, eviction ile invalidation kurallarını baştan tanımlamak, çok instance'lı bir .NET uygulamasında hem performansı hem de veri tazeliği beklentisini kontrollü tutar. Yazının vurguladığı gibi önbellek davranışı, benchmark sayısından daha önemli bir tasarım kararıdır.

Bu özet, DEV Community: #dotnet üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü