Caching (önbellekleme) işlemi, sık kullanılan verilerin sürekli veri tabanı, dosya gibi veri kaynağına bağlanılıp alınmaması için verilerin geçici olarak bellekte saklanması işlemidir.
Distributed caching, önbelleğe alınacak verilerin farklı sunucularda tutulması işlemidir yani önbellekteki veriler projemizin barındığı sunucuda saklanmaz.
Redis (Remote Dictionary Server), veriyi key-value şeklinde in-memory (hafıza/RAM) tutan açık kaynaklı bir veritabanıdır.
http://www.canertosuner.com/post/windows-uzerinde-redis-server-kurulumu-ve-kullanimi
- Strings: Karakter seti
- Lists: Eklenme sırasına göre birden fazla string tutar.
- Sets: Sırasız bir şekilde birden fazla string tutar.
- Hashes: Map şeklinde (key-value) string saklar
- Sorted Sets: Sırasız bir şekilde birden fazla string tutar. Her elementten score adı verilen bir sayı üretilir ve değeri aynı olan iki kayıt eklenemez.
Strings veri tipi, verilerin string formatı olarak tutulduğu veri yapısıdır. <key,value> çiftinde değer kısmı maksimum 512 MB yer tutar.
SET/GET : Değer atama / okuma
INCR/DECR : Text’in veri tipi int (rakam) ise INCR ile değerini artırıp DECR ile de değerini azaltabiliriz
MSET/MGET : Birden fazla değer atama / okuma
APPEND : Kayıt birleştirme
GETRANGE : Değerin belirli bir kısmını (substring gibi) döner
STRLEN : Değeri uzunluğunu döner
Lists veri tipi, metinsel ifadeler listesini temsil ediyor. Listeye eklenme sırasına göre sıralama uygular. Listelerin kuyruk gibi kullanıldığı durumlar da mevcuttur.
LPUSH/RPUSH : Listenin başına / sonuna kayıt ekleme
LPOP/RPOP : Listenin başından / sonundan kayıt silme
LREM : Listeden kayıt silme
LSET : Belirtilen index (sıra no.) sonucu kayıt ekleme
LINDEX : Belirtilen index’e göre kayıt getirme
LRANGE : Belirtilen aralıkta kayıtları getirir
LLEN : Listenin uzunluğunu getirir
LTRIM : Belirtilen aralıkta listeyi keser
Set veri tipi, verileri sırasız (rastgele sırada eklenilen) ve unique (benzersiz) olarak tutan veri tipidir. Aynı veriden birden fazla bulunmamaktadır.
SADD : Listeye kayıt ekleme
SCARD : Listeden kayıt döner
SDIFF, SINTER, SUNION : Difference, Intersection, Union matematiksel işlemleri
SISMEMBER : Kayıt listede mevcut mu değil mi kontrolü
SMOVE : Bir listenin kayıtlarını diğer listeye taşıma
SREM : Listeden kayıt silme
Hash veri tipi, bir key’e karşılık birden fazla field (alan tutmaya) yarayan veri tipidir. Bir objenin birden fazla değeri olabilir.
HSET/HGET : Kayıt atama / alma
HMSET/HMGET : Çoklu kayıt atama / alma
HGETALL : Tüm kayıtları döndürür
HDEL : Kayıt silme
HEXISTS : Kayıt var mı kontrolü
HINCRBY : Integer kaydın değerini artırma
HKEYS / HVALS : Tüm anahtar (key) / değerleri döndürür
Sorted set veri tipi, Set veri yapısının benzerdir. Verileri unique (benzersiz) olarak tutmakla beraber score dediğimiz değere göre sıralama işlemi yapmaktadır.
ZADD : Bir veya birden fazla kayıt ekleme. Kayıt varsa score güncellenir
ZCARD : Setteki kayıtların sayısını döndürür
ZCOUNT : Setteki belirli aralıkta score’u bulunan kayıtları döndürür
ZINCRBY : Setteki kaydın score değerini artırır
ZRANGE : Setteki belirli aralıkta kayıtları döner (index’e göre)
ZRANK : Setteki kaydın index bilgisini döner
ZREM : Bir veya birden fazla kaydı silme
ZSCORE : Setteki kaydın score’unu döner
Redis veri tipleri ile ilgili daha fazla bilgi almak için ziyaret ediniz;
- https://redis.io/topics/data-types
- https://github.com/microsoftarchive/redis
- https://github.com/redis/redis-doc
- Docker ile çalışmak isteyenler: https://hub.docker.com/_/redis
- Kurulum yapmak isteyenler: https://redis.io/download
ilgili linklerden kurulumunlarını yaparak projeyi ayaga kaldırabilirler.