class Redis Nedir? extends Post
@created_at(
"2025-01-14 13:48"
)
@tag(
"redis"
)
***
Redis, RAM (Random Access Memory) üzerinde çalışan ve bu sayede son derece hızlı veri işleyebilen bir veri saklama ve yönetim sistemidir. Geleneksel SQL tabanlı veritabanılardan farklı olarak Redis, verileri hız odaklı ve çeşitli veri yapıları şeklinde saklar. Redis’in temel özelliklerini ve örneklerle kullanımını aşağıda inceleyelim.
---
### Redis'in Kurulumu ve İlk Adımları
1. **Kurulum**:
Redis'i sisteminize kurmak için, kullandığınız işletim sistemine uygun bir yükleme yapabilirsiniz.
- Linux için: `sudo apt install redis`
- macOS için: `brew install redis`
2. **Redis Sunucusunu Başlatma**:
Redis sunucusunu açmak için terminalde şu komutu çalıştırın:
redis-server
3. **Redis Client’a Bağlanma**:
Redis’e komutlarla erişim sağlamak için Redis client kullanılır:
redis-cli
Bu komutla Redis sunucusuna bağlanabilirsiniz. Artık Redis komutlarını denemeye hazırsınız.
---
### Redis Komutları ile Temel Kullanım
Redis’in temel komutlarını ve işlevlerini basit örneklerle anlatalım:
#### 1. **Anahtar-Değer Saklama (Key-Value)**
Redis, anahtar-değer çiftlerini saklamak için kullanılır.
**Komutlar:**
- `SET` – Bir anahtara değer atar.
- `GET` – Anahtarın değerini getirir.
**Örnek:**
SET kullanici:ad "Atilla"
GET kullanici:ad
# Çıktı: "Atilla"
#### 2. **Sayaç (Counters)**
Redis, hızlı bir sayaç işlevi görür.
**Komutlar:**
- `INCR` – Bir anahtarın değerini 1 artırır.
- `DECR` – Değeri 1 azaltır.
**Örnek:**
SET sayac 0
INCR sayac
INCR sayac
DECR sayac
GET sayac
# Çıktı: "1"
#### 3. **Listeler**
Redis, listeleri saklayabilir ve yönetebilir. Listeler FIFO (First In, First Out) mantığıyla çalışr.
**Komutlar:**
- `LPUSH` – Listeye başa eleman ekler.
- `RPUSH` – Listeye sona eleman ekler.
- `LPOP` – Listenin başındaki elemanı çıkarır.
- `LRANGE` – Listenin belirli bir aralığını getirir.
**Örnek:**
LPUSH yapilacaklar "Görev 1"
LPUSH yapilacaklar "Görev 2"
LRANGE yapilacaklar 0 -1
# Çıktı: ["Görev 2", "Görev 1"]
LPOP yapilacaklar
# Çıktı: "Görev 2"
#### 4. **Hash’ler (Sözlükler)**
Hash’ler, bir anahtar altında birden fazla alan ve değer saklamanıza olanak tanır.
**Komutlar:**
- `HSET` – Hash’e alan ve değer ekler.
- `HGET` – Hash’den belirli bir alanı getirir.
- `HGETALL` – Hash’in tümünü getirir.
**Örnek:**
HSET kullanici:1 ad "Atilla"
HSET kullanici:1 yas 35
HGETALL kullanici:1
# Çıktı: ["ad", "Atilla", "yas", "35"]
#### 5. **Set’ler (Küme Verileri)**
Set’ler benzersiz elemanları saklar.
**Komutlar:**
- `SADD` – Set’e eleman ekler.
- `SMEMBERS` – Set’teki tüm elemanları getirir.
**Örnek:**
SADD hobiler "Koşu"
SADD hobiler "Kitap"
SADD hobiler "Koşu"
SMEMBERS hobiler
# Çıktı: ["Koşu", "Kitap"]
#### 6. **Zaman Aşımlı Anahtarlar**
Redis'te bir anahtarın ömrüne bir zaman sınırı koyabilirsiniz.
**Komutlar:**
- `EXPIRE` – Bir anahtarın ömrünü belirler.
- `TTL` – Bir anahtarın kalan ömrünü sorgular.
**Örnek:**
SET kod "12345"
EXPIRE kod 60
TTL kod
# Çıktı: 59
---
### Redis Kullanım Senaryoları
1. **Oturum Yönetimi (Session Management):**
Kullanıcı oturum bilgilerini Redis'te saklayarak hızlı ve ölçeklenebilir bir çözüm sunabilirsiniz.
SET session:kullanici1 "aktif"
GET session:kullanici1
# Çıktı: "aktif"
2. **Gerçek Zamanlı Sayaçlar:**
Web sitenizdeki ziyaretçi sayısını çok hızlı bir şekilde takip edebilirsiniz.
INCR ziyaretci:sayisi
GET ziyaretci:sayisi
3. **Cacheleme:**
Sorgu sonuçlarını Redis'te cache’leyerek hızlı cevap verebilirsiniz.
SET cache:kategoriler "[\"Teknoloji\", \"Bilim\"]" EX 300
GET cache:kategoriler
Redis, yalın yapısı ve hızlı performansıyla birçok modern uygulamada kullanılmaktadır. Cacheleme, oturum yönetimi, gerçek zamanlı veri işlemleri ve daha fazlası için Redis'i rahatlıkla kullanabilirsiniz.