Sunucu Web Tasarımı Yazılım

Redis Kullanımı – Süper Hızlı Bir Veritabanı

Asp.NET Core’de Session İçin Redis Cache Kullanımı

Bir web uygulamasının yayınlandığı host üzerinde oluşturulan sessionların uygulama yeniden başlatıldığı durumlarda kaybolması kaçınılmazdır. Bu durum belleğin temizlenmesi açısından iyiye alamet olarak yorumlanabilsede esasında session’daki verilerin kaybı söz konusu olacağından dolayı pekte istenilen bir durum olmasa gerek. Dolayısıyla böyle bir ahvale istinaden sessionların in-memory’de tutulmasından kaçınılması ve herhangi bir distributed memory’de depolanması her açıdan daha tercih edilebilir gözükmektedir.

Bizler bu içeriğimizde Asp.NET Core uygulamalarında session’ların distributed cache olarak Redis server’da nasıl storage edilebileceğini inceleyeceğiz. Bunun için herhangi bir Asp.NET Core uygulamasına Microsoft.Extensions.Caching.Redis kütüphanesinin dahil edilmesi gerekmektedir.

İlgili kütüphaneyi yükledikten sonra ‘Startup.cs’ dosyasında aşağıdaki gibi entegrasyonun yapılması gerekmektedir.

Yukarıdaki kod bloğunu incelersek eğer 8. satırda ‘AddDistributedRedisCache’ metodu ile session’ların hangi Redis server’da tutulacağına dair gerekli konfigürasyonlar yapılmaktadır. 13. satırda ise session servisi eklenmekte ve 24. satırda middleware olarak devreye sokulmaktadır.

Bu entegrasyonlar neticesinde uygulamada kullanılan tüm session’lar direkt olarak Redis sunucusunda cache edilecektirler. Böylece uygulamanın herhangi bir sebepten dolayı kapanması yahut aksaması üretilen sessionların silinmesini engelleyeceği gibi bir yandan da uygulamanın belleğini işgal etmeyecekleri için performansı düşürüp maliyeti arttırmayacaktır.

 

Görüldüğü üzere session bilgileri hedef Redis sunucusunda başarıyla tutulmaktadır.