.Net Core Azure Redis Cache kullanımı

ihsan güç
3 min readFeb 27, 2022

Bugünkü makalede il, ilçe, mahalle verilerini azure redis cache servisini kullanarak redis’e üzerine veri ekleme ve eklenen verileri database’e gitmeden azure redis cache üzerinden okuma ile ilgili küçük bir örnek ile anlatacağım.

Redis bir veri yapısı sunucusudur. Açık kaynak, bellek kullanımlı, anahtar-değer deposudur. Redis “Uzak Sözlük Sunucusu” anlamına gelmektedir.

Azure hesabına giriş yaptıktan sonra arama çubuğunda ‘redis için azure cache’ yazarak ulaşabiliyoruz, karşımıza çıkan ekranda azure redis cache oluştur tıkladıktan sonra

Resim 1

Aşağıdaki gibi ekran bizi karşılıyor ve bellek türünü, dns adını ve konum olarak west us 2 (test için uygun konum) seçtikten sonra gözden geçir ve oluştura tıkladıktan sonra 2–4 dakika sonrasında azure redis servisini ayağa kaldırmış olacaktır.

Resim 2

Ayağa kalktıktan sonra bizi karşılayan ekranda bellek kullanımını ve sunucu yükünü anlık olarak aşağıdaki grafiklerden izlenebilir.

Resim 3

Redis‘i test etmek için konsol ekranına ‘ping’ yazarak test ediyoruz eğer ‘pong’ yazısını görürseniz herhangi bir sıkıntı yok ve yolla devam edebiliriz.

Resim 4

Erişim anahtarlarını göster kısmına tıklayarak entegrasyon için gerekli anahtar bilgilerini alarak işlemlere başlayabiliriz. StackExchange entegrasyonu için kullanacağımız anahtar ‘Birincil bağlantı dizisi’ veya ‘İkincil bağlantı dizisi’.

Resim 5

Azure Redis Projesinde kullandığım kütüphaneler;

  • StackExchange.Redis (2.2.88).
  • Npgsql.EntityFrameworkCore.PostgreSQL (5.0.0)
  • .Net Core 3.1

Database bağlantıları ve servis katmanları oluşturduktan sonra redis entegrasyonu için bir tane interface IRedisCacheService oluşturuyoruz.

Resim 6

RedisCacheService nesnesinide oluşturduktan sonra IRedisCacheService implement ederek;

  • 9 satır: Bağlantı oluşturduğumuz kısım yukarıda kopyaladığımız bir veya ikinci anahtarı değiştirmeden kopyalayarak redis bağlantısı sağlar.
  • 12 satır: bağlantı sağladığımız redis bağlantısı ile bir tane IDatabase nesnesi oluştururuz (CRUD işlemi için).
  • 23 satır: Any fonksiyonu redis üzerinde gönderilen key ile ilgili bir alan var olup olmadığını kontrol eder.
  • 14 satır: Get fonksiyonu eğer redis üzerinde o key’e ait bir data yoksa null var ise o data karşılık gelen veriyi döndürür.
  • 27 ve 32 satır: Set fonksiyonları gelen key ve value ile birlikte redis üzerinde ekleme yapar fakat siz eğer bir tane timespan gönderirseniz otomatik olarak o timespan süresi bittikten sonra data silinir.
  • 37 satır: Remove fonksiyonu redis üzerinde tutulan veriyi silmeye yarıyor.
Resim 6

Redis entegrasyonunu bitirdikten sonra, yapacağımız örnek uygulamada birisi sadece database kullanacak diğer örnek ise database ile redis kullanarak redis ekledikten sonra redis üzerinde okuma sağlayacağız.

Burada test edeceğimiz şehir İstanbul’un mahallelerini çekerek ne kadar süre harcadıklarını kontrol ederek bir tablo oluşturmak istedim sonuçlar ise aşağıdaki tabloda gösterilmiştir. Fakat testte bakıldığında database’den verileri çekmek daha iyi gibi dursa da database local üzerinde tutulduğu için herhangi bir service databasene bağlanmadığım için düşük gösteriyor ve değişiklik gösterebilir.

Resim 8

Redis’e eklediğimiz key-value ları redis konsol kısmına “Keys *yazarak aşağıdaki gibi görüntüleyebiliriz.

Resim 9

Kaynak

Okuduğunuz için teşekkürler. Bir sonraki yazıda görüşmek dileğiyle…

--

--