Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Redis CLI ile Temel Veri Tipleri Üzerinde İşlem Yapma ve Anahtar Süre Sonu (TTL) Ayarlama

devnix

Üye
Katılım
14 Mart 2026
Mesajlar
40
Merhaba arkadaşlar, bugün sizlere Redis komut satırı arayüzünü (CLI) kullanarak en temel veri tipleriyle nasıl çalışacağınızı ve en kritik özelliklerden biri olan anahtar süre sonu (TTL) ayarlamayı adım adım anlatacağım. Özellikle cache mekanizmaları veya oturum yönetimi için Redis kullanıyorsanız, bu temel komutları bilmek hayat kurtarıcı olacaktır.

🔍 Redis CLI'ye Bağlanma ve Temel Kontroller

Öncelikle Redis sunucumuza bağlanalım. Eğer Redis sunucusu aynı makinedeyse ve varsayılan portta çalışıyorsa aşağıdaki komut yeterli olacaktır. Ben genelde bu şekilde bağlanırım.

Bash:
redis-cli

Bağlandıktan sonra sunucunun çalıştığından emin olmak için PING komutunu atabiliriz. Cevap "PONG" olarak dönmelidir.

Bash:
PING

Eğer sunucuya şifre ile bağlanmanız gerekiyorsa, bağlandıktan sonra AUTH komutunu kullanabilirsiniz. Şifreli bağlantı için direkt komut satırından da bağlanabilirsiniz.

Bash:
redis-cli -a sifreniz

📝 String Veri Tipi ile Çalışma

String, Redis'teki en temel veri tipidir. Metin, sayı veya binary veri saklayabilir. Bir anahtarın değerini SET komutuyla atarız.

Bash:
SET kullanici:1001:isim "Ahmet Yılmaz"

Değeri okumak için GET komutunu kullanırız.

Bash:
GET kullanici:1001:isim

String tipindeki bir değeri sayı olarak saklayıp arttırmak da çok yaygın bir kullanımdır. Örneğin sayaçlar için INCR komutu mükemmeldir.

Bash:
SET site:ziyaretci:sayaci 100
INCR site:ziyaretci:sayaci

Komutu çalıştırdıktan sonra değer 101 olacaktır. Eğer anahtar yoksa, INCR onu 1 değeri ile oluşturur.

🗂️ List Veri Tipi ile Çalışma

Listeler, sıralı bir koleksiyondur. Bir kuyruk (queue) veya yığın (stack) gibi davranabilir. LPUSH komutu ile listenin başına eleman ekleriz.

Bash:
LPUSH gorevler "backup_al" "log_temizle" "rapor_olustur"

Listenin tüm elemanlarını LRANGE ile okuyabiliriz. 0 -1 aralığı tüm listeyi getirir.

Bash:
LRANGE gorevler 0 -1

Listenin sonundan bir eleman çıkarmak (kuyruk mantığı) için RPOP kullanırız.

Bash:
RPOP gorevler

⚠️ Anahtar Süre Sonu (TTL) Ayarlama

Redis'in en güçlü özelliklerinden biri, anahtarlara bir ömür biçebilmemizdir. Bu, özellikle oturum (session) veya önbellek (cache) verileri için vazgeçilmezdir. Bir anahtarın süresi dolduğunda Redis onu otomatik olarak siler.

Bir anahtarı oluştururken süre sonunu direkt SET komutu ile verebiliriz (EX saniye cinsinden).

Bash:
SET oturum:xyz123 "kullanici_data" EX 3600

Bu komut, oturum:xyz123 anahtarını 3600 saniye (1 saat) sonra silinecek şekilde oluşturur.

Eğer var olan bir anahtara süre sonu eklemek istersek, EXPIRE komutunu kullanırız.

Bash:
EXPIRE gecici:veri 300

Bu komut, gecici:veri anahtarının ömrünü 300 saniye (5 dakika) olarak ayarlar.

Bir anahtarın kalan süresini kontrol etmek için TTL komutunu kullanırız. Eğer anahtarın süresi sona ermişse -2, hiçbir süre sınırı yoksa -1 döner.

Bash:
TTL oturum:xyz123

⚙️ Diğer Temel Veri Tipleri ve Özet

Kısa bir özet geçmek gerekirse:
Sets (Kümeler): Benzersiz, sırasız eleman koleksiyonu. SADD, SMEMBERS komutları.
Hashes (Hash Tabloları): Bir anahtar altında field-value çiftleri saklamak için idealdir. Kullanıcı profili gibi nesneleri temsil eder. HSET, HGETALL komutları.
Sorted Sets (Sıralı Kümeler): Her elemanın bir skoru vardır ve buna göre sıralanır. Leaderboard'lar için mükemmeldir. ZADD, ZRANGE komutları.

Örneğin bir hash oluşturalım:

Bash:
HSET urun:5001 isim "Laptop" fiyat 15000 stok 25

Tüm field'ları ve değerleri okumak için:

Bash:
HGETALL urun:5001

🎯 Sonuç ve Tavsiyeler

Redis CLI'yi ve temel komutları öğrenmek, sunucunuzdaki veri akışını debug etmenizi ve küçük operasyonları hızla yapmanızı sağlar. TTL özelliğini doğru kullanmak, bellek yönetimi ve veri tutarlılığı açısından çok önemlidir. Süresi dolmuş eski cache kayıtlarının belleği işgal etmesini engellersiniz.

Ben genelde kritik cache anahtarlarına mutlaka bir TTL süresi belirlerim, sonsuz yaşayan anahtar bırakmamaya çalışırım. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? TTL sürelerinizi belirlerken nelere dikkat ediyorsunuz? Aklınıza takılan veya eklemek istediğiniz bir şey olursa aşağıya yazmaktan çekinmeyin. Hep birlikte öğrenelim.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri