Redis Nedir ve Kullanımı

Redis(Remote Dictionary Service), key value olarak tasarlanmış NoSQL veritabanıdır. Sabit Diske(Hard disk) yazmadan RAM üzerinde tutmaya yarar. Sunucu kapansa bile veriler NoSQL veritabanından dolayı kaybolmaz.

sql, CPU üzerinde ciddi yer tutabilir. (Özellikle yüksek trafikli web sitelerinde) Redis bu yükü hafifletmektedir.

Redis tüm veriyi bellekte tuttuğu için çok hızlıdır. Redis çok az bellekte yer kaplar.

Client tarafında cookie olarak veri tutmak istemediğinizde de Redis kullanabilirsiniz.

Redis verileri String, Hash, List, Set ve Sorted List(ZSET) saklayabilir.

Download Redis

Redis-x64-3.2.100.msi 64 bit

Default port : 6379

Redis çalışıp çalışmadığının kontrolü için redis-cli.exe programını çalıştırın.

c# Redis Nedir
c# Redis Nedir

Visual Studio kullanarak c# programlama dili ile bir konsol uygulamasında örnek yapalım.

Package Manager Console konsolunda aşağıdaki kodu çalıştırın.

PM> Install-Package StackExchange.Redis

ConnectionMultiplexer sınıfı Redis suncusuna (Server) bağlanmanızı sağlar.

Person sınıfının örneğini(instance) json notasyonuna dönüştürmek için Newtonsoft.Json kullanıyoruz.

PM> Install-Package Newtonsoft.Json -Version 11.0.2

using Newtonsoft.Json;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p1 = new Person();
            p1.name = "Cihan";
            p1.surName = "AŞAN";
            p1.age = 32;

            TimeSpan expire = DateTime.Now.AddMinutes(30).Subtract(DateTime.Now);
            string key = "p1";

            ConnectionMultiplexer conm = ConnectionMultiplexer.Connect("localhost:6379");
            IDatabase db = conm.GetDatabase();
            db.StringSet(key, JsonConvert.SerializeObject(p1), expire);

            if (db.KeyExists(key))
            {
                RedisValue value = db.StringGet(key);
                Person p2 = value.HasValue ? JsonConvert.DeserializeObject<Person>(value) : null;

                if (p2 != null)
                    Console.WriteLine("Name : " + p2.name + " Surname : " + p2.surName + " Age : " + p2.age);
            }

            Console.ReadKey();
        }
    }
    class Person
    {
        public string name { get; set; }
        public string surName { get; set; }
        public int age { get; set; }
    }

}

Çıktı :

redis c# kullanımı
redis c# kullanımı

Aşağıda gösterildiği gibi satırı comment yaptığınızda tekrar Start ediniz. Çıktı değişmemiştir. 30 dakika boyunca Redis sayesinde bellekte saklanır.

//db.StringSet(key, JsonConvert.SerializeObject(p1), expire);

Bir cevap yazın

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