Asp.Net Core Redis Kullanımı | Redis Nedir ?

Redis NoSQL memory cached veritabanı sistemlerinden biridir.
Redis ilk başlarda Linux için yazılmış bir memory cached sistemi olsada Windows işletim sistelerini destekleyecek şekilde güncellenmiştir.

Avantajları

  • Senkron çalıştığı için son derece hızlıdır.
  • Birçok veri türünü destekler.
  • Veriyi hem RAM üzerine hem de ayarladığınız konfigürasyona göre disk üzerine kaydedebilir.
  • Disk üzerine kayıt yaptığı için restart sonrasında aynı verilerle çalışmaya devam eder.
  • Son derece aktif bir kullanıcı kitlesine sahiptir.
  • Sharding, cluster, sentinel,replication gibi birçok enterprise özelliklere sahiptir

Dezavantajları

  • Veri boyutunuza göre RAM’e ihtiyacınız olur.
  • Komplex sorgular için sorgu yapacaksanız, Redis yapısını düzgün kurgulamalısınız.
  • Bir transaction hata alırsa geri dönüşü yoktur.

Redis Kurulumunu bu linkten indirebilirsiniz.
redis-server.exe tıklayıp kurulumu yapın. aşağıdaki ekran geldiği zaman kurulum tamamlanmıştır.

Evet şimdi redis-cli.exe çalıştırıp test edelim.

Projemize Redis ve Newtonsoft’u ekleyelim.

<PackageReference Include="Microsoft.Extensions.Caching.Redis" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddDistributedRedisCache(option =>
    {
        option.Configuration = "localhost:6379";
    });
}

Values.Controller.cs Return String

[HttpGet]
public async Task&lt;string> Get()
{
    const string cacheKey = "datetimeCacheKey";

    var cachedItem = await _distributedCache.GetStringAsync(cacheKey);
    if (!string.IsNullOrEmpty(cachedItem))
    {
        return cachedItem;
    }
    else
    {
        string str = DateTime.Now.ToString();
        await _distributedCache.SetStringAsync(cacheKey, str);
        return str;
    }
}

Values.Controller.cs Return Object

[HttpGet]
public async Task &lt;string> Get()
{
    const string cacheKey = "objectCacheKey";
    var cachedItem = await _distributedCache.GetStringAsync(cacheKey);
    if (!string.IsNullOrEmpty(cachedItem))
    {
        return cachedItem;
    }
    else
    {
        List&lt;UserModel> userModel = new List&lt;UserModel>();
        var model = new UserModel()
        {
            Id = 1,
            Email = "murat.gozcu@flo.com.tr",
            Name = "Murat GÖZCÜ"
        };
        userModel.Add(model);
        var jsonData = JsonConvert.SerializeObject(model);
        await _distributedCache.SetStringAsync(cacheKey, jsonData);
        return jsonData;
    }
}

Örnek projeyi buradan indirebilirsiniz.

“Asp.Net Core Redis Kullanımı | Redis Nedir ?” için bir yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir