Windows’a Redis Kurulumu ve ASP.NET ile Kullanımı
Redis, yüksek hızlı bir in-memory veri yapısı deposu olarak ASP.NET uygulamalarında yaygın şekilde kullanılmaktadır. Ancak, Redis doğal olarak Linux sistemleri için tasarlanmıştır. Bu yazıda, Windows üzerinde Redis’in nasıl kurulacağını ve ASP.NET projelerinizde Redis'i nasıl entegre edebileceğinizi adım adım anlatıyoruz.

Windows’a Redis Kurulumu

1. Docker Kullanarak Windows’a Redis Kurulumu

Docker kullanarak Redis’i Windows’a kurmanın en kolay yolu aşağıdaki adımları takip etmektir:

1. Docker Kurulumu: Eğer sisteminizde Docker yüklü değilse, Docker for Windows sayfasından Docker'ı indirin ve kurulum adımlarını takip edin.

2. Redis Docker İmajını Çekme: Docker yüklendikten sonra, Redis imajını indirip çalıştırmak için terminalde (PowerShell veya Komut İstemi) aşağıdaki komutu çalıştırın:

docker run --name redis -d -p 6379:6379 redis

Bu komut, Redis’in en son sürümünü indirir ve yerel makinenizde 6379 portunda Redis sunucusunu başlatır.

3. Redis’in Çalıştığını Kontrol Etme: Redis’in doğru çalıştığını kontrol etmek için aşağıdaki komutu çalıştırarak Docker konteynerine bağlanabilirsiniz:

docker exec -it redis redis-cli

Bağlandıktan sonra ping komutunu kullanarak cevap alıp almadığını kontrol edin. 'PONG' yanıtı alıyorsanız Redis düzgün çalışıyordur.

2. Microsoft’un Redis için Sağladığı Windows Binaries Kullanarak Kurulum (Alternatif)

Redis'in eski bir sürümünü Microsoft'un sunduğu binaries üzerinden kurmak isterseniz, aşağıdaki adımları takip edebilirsiniz:

1. Redis’in Windows Sürümünü İndirin: Redis’in Windows uyumlu eski sürümünü tMeulenhoff tarafından oluşturulan Windows için Redis GitHub sayfasından indirebilirsiniz.

2. Kurulum ve Çalıştırma: İndirdiğiniz zip dosyasını açın ve redis-server.exe dosyasını çalıştırarak Redis sunucusunu başlatabilirsiniz. Bu sayede Redis, varsayılan olarak 6379 portunda çalışacaktır.

ASP.NET ile Redis Kullanımı

1. ASP.NET Projesine StackExchange.Redis Kütüphanesini Ekleme

1. NuGet Paketini Ekleme: Visual Studio’da ASP.NET projenizi açın. Ardından, NuGet Package Manager üzerinden StackExchange.Redis paketini projenize ekleyin. Bunu yapmak için:

- Tools > NuGet Package Manager > Manage NuGet Packages for Solution yolunu takip edin.

- Arama kutusuna StackExchange.Redis yazın ve çıkan paketi projeye ekleyin.

2. Redis Bağlantısını Yapılandırma: Redis sunucusuna bağlanmak için bir bağlantı cümlesine (connection string) ihtiyacınız olacak. Bağlantıyı sağlamak için kodunuza aşağıdaki adımları ekleyin.

2. ASP.NET Core İçin Redis Kullanımı

ASP.NET Core uygulamanızda Redis kullanmak için aşağıdaki adımları takip edebilirsiniz:

appsettings.json içerisine Redis bağlantı bilgisini ekleyin:

{
  "Redis": {
    "ConnectionString": "localhost:6379"
  }
}

Startup.cs dosyasına Redis'i ekleyin:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Redis bağlantısı için StackExchange.Redis kullanımı
        services.AddStackExchangeRedisCache(options =>
        {
            options.Configuration = Configuration.GetSection("Redis")["ConnectionString"];
            options.InstanceName = "RedisSampleInstance";
        });
        services.AddControllersWithViews();
    }
}

3. Temel Redis İşlemleri (ASP.NET Core Örneği)

Cache'de Veri Saklama:

public class RedisCacheController : Controller
{
    private readonly IDistributedCache _cache;

    public RedisCacheController(IDistributedCache cache)
    {
        _cache = cache;
    }

    public async Task<IActionResult> SetCache()
    {
        string cacheKey = "username";
        string cacheValue = "John Doe";

        // Redis cache'de veriyi sakla
        await _cache.SetStringAsync(cacheKey, cacheValue);

        return Content("Cache'e veri yazıldı");
    }
}

Cache'den Veri Getirme:

public class RedisCacheController : Controller
{
    private readonly IDistributedCache _cache;

    public RedisCacheController(IDistributedCache cache)
    {
        _cache = cache;
    }

    public async Task<IActionResult> GetCache()
    {
        string cacheKey = "username";

        // Redis cache'den veri oku
        var cachedValue = await _cache.GetStringAsync(cacheKey);

        if (cachedValue != null)
        {
            return Content($"Cache'den okunan değer: {cachedValue}");
        }
        else
        {
            return Content("Cache'de bu anahtar bulunamadı.");
        }
    }
}

4. Redis ile Oturum Yönetimi

Redis, oturum yönetiminde (session management) de kullanılabilir. ASP.NET Core uygulamanızda Redis'i oturum yönetimi için kullanmak için şu adımları izleyin:

Startup.cs'de oturum yönetimini Redis ile yapılandırın:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        // Redis ile oturum yönetimi (session)
        services.AddDistributedRedisCache(options =>
        {
            options.Configuration = Configuration.GetSection("Redis")["ConnectionString"];
            options.InstanceName = "SessionInstance";
        });
        services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromMinutes(30);
            options.Cookie.HttpOnly = true;
            options.Cookie.IsEssential = true;
        });
        services.AddControllersWithViews();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseSession();
        app.UseRouting();
        app.UseEndpoints(endpoints => endpoints.MapDefaultControllerRoute());
    }
}

Bu şekilde oturum verileri Redis üzerinde saklanacaktır.

Sonuç

Redis, ASP.NET projelerinde yüksek hızlı cache ve oturum yönetimi için mükemmel bir çözümdür. Windows üzerinde Docker veya Redis'in eski Windows sürümleriyle Redis sunucusunu çalıştırarak, ASP.NET uygulamalarınıza Redis’i entegre edebilir ve uygulamanızın performansını artırabilirsiniz. Redis’in zengin veri yapıları ve yüksek performansı, özellikle büyük ölçekli uygulamalarda büyük bir avantaj sağlar.

Bu alana reklam verebilirsiniz!