Önbelleğe alma çözümü tasarlama

Tamamlandı

Önbelleğe alma , bir sistemin performansını ve ölçeklenebilirliğini geliştirmeyi amaçlayan yaygın bir tekniktir. Önbelleğe alma, sık erişilen verileri geçici olarak uygulamaya yakın bir konumda bulunan hızlı depolama alanına kopyalar. Hızlı veri depolama, bir uygulamaya özgün veri deposundan daha yakın bir yerde bulunduğunda önbelleğe alma, verileri daha hızlı sunarak istemci uygulamaları için yanıt sürelerini önemli ölçüde artırabilir.

Önbelleğe alma, özellikle aşağıdaki koşullar özgün veri deposu için geçerli olduğunda, istemci örneği aynı verileri tekrar tekrar okuduğunda en etkili olandır:

  • Özgün veri deposu görece statik kalır.
  • Yüksek düzeyde bir çekişmeye tabidir.
  • Çok uzaktadır ve ağ gecikme süresi depoya yavaş erişime neden olabilir.

Tailwind Traders'ın perakende web sitesine yönelik müşteri trafiğini artırmak için ürün tanıtım uygulamasına yeni bir özellik eklediğini varsayalım. Etkinlik özelliği, özel teklifleri ve sınırlı ürün indirimlerini duyurmak için mobil uygulamanın en üstüne bir başlık ekler. Yeni teklifler saat başı yayınlanır ve her teklif için kalan ürün kullanılabilirliği her sipariş işlendikten sonra güncelleştirilir. Yeni bir teklife yanıt veren ilk müşteri çift indirim alır! Müşterilerin, teklifler ve ürün kullanılabilirliği güncelleştirmeleri için mobil uygulamalarını sık sık denetlemeleri önerilir. Bu yeni özelliği uygulamak için bellek içi hızlı okuma ve yazmaları destekleyebilecek bir önbelleğe alma çözümü tasarlamanız gerekir.

Redis için Azure Cache hakkında bilinmesi gerekenler

Redis için Azure Cache, Redis yazılımını temel alan bir bellek içi veri deposu sağlar. Redis, arka uç veri depolarını yoğun olarak kullanan bir uygulamanın performansını ve ölçeklenebilirliğini artırır. Sunucu belleğinde sık erişilen verileri tutarak büyük hacimli uygulama isteklerini işleyebilir ve bu veriler hızlı bir şekilde yazılabilir ve buradan okunabilir. Redis, modern uygulamalara kritik bir düşük gecikme süresi ve yüksek aktarım hızına sahip veri depolama çözümü sunar.

Şimdi hizmetin özelliklerini gözden geçirelim:

  • Redis için Azure Cache geliştiriciler için iki uygulama seçeneği sunar:

    • Redis açık kaynak (OSS Redis)
    • Yönetilen hizmet olarak Redis Labs'den (Redis Enterprise) ticari bir ürün
  • Redis için Azure Cache, güvenli ve ayrılmış Redis sunucu örnekleri ve tam Redis API uyumluluğu sağlar.

  • Redis için Azure Cache dağıtılmış veri veya içerik önbelleği, oturum deposu veya ileti aracısı olarak kullanabilirsiniz.

  • Redis için Azure Cache tek başına veya Azure SQL veya Azure Cosmos DB gibi diğer Azure veritabanı hizmetleriyle dağıtın.

Redis için Azure Cache nasıl çalışır?

Redis için Azure Cache Azure'da barındırılır ve Azure içindeki veya dışındaki tüm uygulamalar tarafından kullanılabilir. Aşağıdaki grafikte belirtildiği gibi, Redis için Azure Cache Azure SQL Veritabanı, Azure Cosmos DB ve MySQL için Azure Veritabanı gibi birçok veritabanı çözümüyle arabirim oluşturan uygulamalarda performansın geliştirilmesine yardımcı olabilir.

Redis için Azure Cache için tipik bir kullanım örneğini gösteren çizim.

Redis için Azure Cache kullanırken dikkat edilmesi gerekenler

Redis için Azure Cache, yaygın uygulama mimarisi desenlerini destekleyerek uygulama performansını geliştirir. Aşağıdaki desenleri gözden geçirirken Tailwind Traders uygulama mimarisinde sergilenebilen desenleri göz önünde bulundurun. Redis için Azure Cache desen gereksinimlerini nasıl sağlayabileceğini düşünün.

Desen Senaryo Çözüm
Veri önbelleği Veritabanları genellikle doğrudan önbelleğe yüklenemeyecek kadar büyüktür. Verileri yalnızca gerektiğinde önbelleğe yüklemek için edilgen önbellek düzeninin kullanılması yaygın bir durumdır. Sistem verilerde değişiklik yaptığında, daha sonra diğer istemcilere dağıtılan önbelleği de güncelleştirebilir. Ayrıca sistem verilerde süre sonu ayarlayabilir veya önbellekte veri güncelleştirmelerini tetikleme amacıyla çıkarma ilkesi kullanabilir.
İçerik önbelleği Üst bilgiler, alt bilgiler, başlıklar gibi statik içerik kullanan şablonlardan birçok web sayfası oluşturulur. Bu statik öğeler sık değişmemelidir. Bellek içi önbellek kullanmak, arka uç veri depolarına kıyasla statik içeriğe hızlı erişim sağlar. Bu düzen işleme süresini ve sunucu yükünü azaltır ve web sunucularının daha hızlı yanıt vermesine olanak tanır. İçerik önbelleği, yükleri işlemek için gereken sunucu sayısını azaltmanıza olanak sağlayabilir. Redis için Azure CacheASP.NET ile bu düzeni desteklemek için Redis Çıktı Önbelleği Sağlayıcısı.
Oturum deposu Oturum deposu genellikle bir web uygulamasının kullanıcı tanımlama bilgileriyle ilişkilendirebileceği alışveriş sepetleri ve diğer kullanıcı geçmişi verileriyle birlikte kullanılır. Tanımlama bilgisinde çok fazla depolamak, tanımlama bilgisi boyutu büyüdükçe ve her istekte geçirilip doğrulandıkça performansı olumsuz etkileyebilir. Tipik bir çözüm, veritabanındaki verileri sorgulamak için anahtar olarak tanımlama bilgisini kullanır. Bilgileri bir kullanıcıyla ilişkilendirmek için Redis için Azure Cache gibi bir bellek içi önbellek kullanmak, tam bir ilişkisel veritabanıyla etkileşime geçmekten daha hızlıdır.
İş ve ileti kuyruğa alma Bazı uygulama işlemlerinin tamamlanması önemli zaman alır ve bu da diğer ilgisiz işlerin veya iletilerin başlatılmasını engelleyebilir. İstekle ilişkili işlemlerin yürütülmesi zaman alırken uygulamalar genellikle kuyruğa görev ekler. Daha uzun süre çalışan işlemler genellikle başka bir sunucu tarafından sıralı olarak işlenmek üzere kuyruğa alınır. Bu çalışmayı erteleme yöntemine görev kuyruğa alma adı verilir. Redis için Azure Cache, uygulamanızda bu düzeni etkinleştirmek için dağıtılmış bir kuyruk sağlar.
Dağıtılmış işlemler Uygulamalar bazen tek bir atomik işlem olarak yürütülmesi için arka uç veri deposuna karşı bir dizi komut gerektirir. Tüm komutların başarılı olması veya tüm komutların başlangıç durumuna geri alınması gerekir. Redis için Azure Cache tek bir işlem olarak bir komut toplu işleminin yürütülmesini destekler.