ASP.NET Core 6.0'da Redis Cache Kullanımı

Berkehan Bendivar
4 min readNov 10, 2022

Ubuntu 20.4 üzerine Redis Kurulumu

Merhabalar, sizlere elimden geldiğince Microsoft tarafından sağlanan “Microsoft.Extensions.Caching.Redis” paketini kullanarak Redis önbelleğini ASP.NET Core ile nasıl kullanılırız onu anlatacağım.

Kısaca “Redis” günümüz sistemlerinde en çok kullanılan key-value veritabanıdır ve genellikle caching, session yönetimi, pub/sub, message broker amacıyla kullanılmaktadır.

Proje üzerine sağ tıklayıp NuGet Paketlerini Yönet’i seçin ve ardından “Microsoft.Extensions.Caching.Redis” aratın ve yükle düğmesine tıklayıp yükleyin.

Ardından, appsettings.json dosyasında redis için connection string ekleyeceğiz.

"RedisConnectionString":"redis.siteadi.com:6380,password=#######=,ssl=True,abortConnect=False"

Yukarıda bulunan kod bloğunu appsettings.json dosyanıza ekleyin.

Örnek olarak appsettings.json dosyanız aşağıdaki gibi gözükmelidir.

Daha sonra appsettings.json dosyasındaki connection stringi ayarladıktan sonra, program.cs dosyası içineAddDistributedRedisCache servisini kaydediyoruz.

AddDistributedRedisCache servisini kaydederken Configuration özelliği ile connection stringi ekleyeceğiz.

Redis paketinin ve yapılandırmasının işlemi aslında buraya kadar bitmiş oluyor. Sıra geldi redisi kullanma kısmına.

DemoController adında bir controller oluşturun ve constructor kısmını aşağıdaki gibi yapın.

Oluşturduğumuz bu controller üzerinde Redis Cache kullanımı için hazır haldeyiz. Şuan bir veri gönderebilir, kayıtlı veriyi çağırabilir veya silebiliriz.

Redis Cache set ederken 3 farklı ayar mevcut.

- Absolute Expiration
Önbelleğe aldığımız değer belirtilen zaman aralığında kullanılıp kullanılmadığına bakılmaksızın sona erecektir.
- Sliding Time Expiration
Önbelleğe aldığımız değer, yalnızca bu süre içinde kullanılmamışsa belirli bir süre sonra sona erecektir.
- AbsoluteExpirationRelativeToNow
Aslında bakıldığı zaman Absolute Expiration ile aynı mantıkta çalıştığı görülüyor. Arasındaki fark ise bu ayarı kullandığımız zamandan itibaren belirttiğiniz süre boyunca çalışıp sona erecektir.

Buraya kadar her şey sizin için tamamsa Redis Cache üzerinde işlem yapmaya başlayalım.

Set Methodu
Set methodunu kullanırken 3 parametre kullanmamız gerekiyor.

1- Key
2- Value in bytes
3- DistributedCacheEntryOptions

Bu işlem ile beraber bir ürün datasını Redis Cache üzerine set etmiş olduk.

SetAsync Methodu
Set yönteminin asenkron hali aslında. Set methodunda olduğu gibi SetAsync methodunda da 3 parametre kullanmamız gerekiyor.

1- Key
2- Value in bytes
3- DistributedCacheEntryOptions

SetString Methodu
Belirtilen key ile bir dize oluşturur. SetString methonu da 3 parametre ile kullanmamız gerekiyor.

1- Key
2- Value in bytes
3- DistributedCacheEntryOptions

SetStringAsync Methodu
SetString methodunun asenkron versiyonu ve yine 3 parametre ile kullanmamız gerekiyor.

1- Key
2- Value in bytes
3- DistributedCacheEntryOptions

Set methodlarını öğrendiğimiz göre artık get methodlarına geçelim.

Get Methodu
Verilen key ile bir value alır.

GetAsync Methodu
Verilen key’le asenkron bir şekilde bir value alır.

GetString Methodu
Redis Cache’de belirtilen key ile bir dize alır. Aslında bu yöntem, deserialize durumdan çıkarmamız gereken dizeyi, ihtiyacımız olan belirli bir türe döndürür.

GetStringAsync Methodu
Redis Cache üzerinden asenkron olarak belirttiğimiz key ile value alır.
GetString methoduyla hemen hemen aynı sadece key belirtmemiz gerekiyor. Dönen değeri ise deserialize etmemiz gerekiyor.

Get methodlarımızı da gördüğümüze göre gelelim set ettiğimiz keyleri silmeye.

Remove Methodu

RemoveAsync Methodu

Bu makalede Redis üzerinde en çok kullabilecek 3 ana methodunu anlatmaya çalıştım. Sürç-i lisan ettiysem affola.

İyi Kodlar…

--

--