Not içeriği yükleniyor...
// Markdown dosyası okunuyor
// İçerik işleniyor
// Syntax highlighting hazırlanıyor
// Markdown dosyası okunuyor
// İçerik işleniyor
// Syntax highlighting hazırlanıyor
Redis String data type operations, encoding strategies ve performance considerations. SET, GET, INCR komutları ve atomic operations.
String
, en basit ve en temel veri türüdür. Bir key’e karşılık gelen bir metin, sayı, JSON string ya da ikili veri saklamak için kullanılır. Redis’in diğer güçlü veri türlerinin pek çoğu, temel olarak String üzerine inşa edilmiştir. Hafifliği ve esnekliği sayesinde, hızlı veri erişimi gerektiren birçok senaryoda öncelikli olarak tercih edilir.Kullanım | Açıklama |
---|---|
Kullanıcı token’ları | auth:user:123 → jwtTokenData |
Sayfa önbelleği (caching) | page:home → HTML string |
Sayaçlar | login:count:today → 1424 |
Geçici veriler | OTP kodu, e-posta onayı, şifre sıfırlama kodu vs. |
Komut | Açıklama | Örnek |
---|---|---|
SET | Key’e bir değer atar. | SET name "Kubilay" |
GET | Key'deki değeri getirir. | GET name → Kubilay |
INCR , DECR | Sayısal string’i artırır/azaltır. | INCR counter → 101 |
INCRBY , DECRBY | Belirli miktarda artır/azalt. | INCRBY counter 5 |
APPEND | Var olan string’in sonuna ekleme yapar. | APPEND name " Bozak" → Kubilay Bozak |
STRLEN | Değerin karakter uzunluğunu verir. | STRLEN name → 12 |
SETRANGE | Mevcut değerin belirli bir kısmını değiştirir. | SETRANGE name 0 "M" → Mubilay Bozak |
GETRANGE | Belirli aralıkta karakterleri getirir. | GETRANGE name 0 6 → Mubilay |
EX , PX | Expire süresi tanımlamak için kullanılır. | SET otp "123456" EX 60 (60 saniye) |
SET
ve GET
komutlarıdır. Şimdi bu komutları adım adım inceleyelim:
text127.0.0.1:6379> SET Name Kubilay // "Name" adında bir key tanımlıyoruz ve değerini "Kubilay" olarak atıyoruz. OK // İşlem başarılı olduğunu gösterir. 127.0.0.1:6379> SET NAME Kubilay2 // "NAME" adında farklı bir key tanımlıyoruz ve bu key'e "Kubilay2" değerini veriyoruz. OK // İşlem başarılı olduğunu gösterir. 127.0.0.1:6379> GET Name // "Name" key'inin değerini getiriyoruz. "Kubilay" // Key'in değeri döndürülüyor. 127.0.0.1:6379> GET NAME // "NAME" key'inin değerini getiriyoruz. "Kubilay2" // Farklı key olduğu için farklı değer döndürülüyor.
Name
ve NAME
aslında Redis için iki tamamen farklı key’dir. Bu yüzden SET NAME Kubilay2
komutuyla, daha önce tanımladığınız Name
key’inin üzerine yazılmamış olur — onun yerine yepyeni bir key (NAME
) oluşturulmuş olur.user:name
, cache:page:home
) kullanılması önerilir.text127.0.0.1:6379> SET mesaj "Merhaba" // "mesaj" adında bir key ve "Merhaba" değeri atandı. OK 127.0.0.1:6379> APPEND mesaj " Dünya!" // "mesaj" key'inin sonuna " Dünya!" eklendi. (integer) 14 // Yeni string uzunluğu döner. 127.0.0.1:6379> GET mesaj // "mesaj" key'inin yeni değeri alındı. "Merhaba Dünya!"
APPEND
komutu sadece string değerler üzerinde çalışır.text127.0.0.1:6379> set Counter 0 // "Counter" adında bir key oluşturup başlangıç değeri 0 atıyoruz. OK // İşlem başarılı olduğunu gösterir. 127.0.0.1:6379> get Counter // "Counter" key'inin değerini kontrol ediyoruz. "0" // Başlangıç değeri olan 0 döndürülüyor. 127.0.0.1:6379> incr Counter // Counter değerini 1 artırıyoruz. (integer) 1 // Artırılmış değer olan 1 döndürülüyor. 127.0.0.1:6379> incr Counter // Counter değerini tekrar 1 artırıyoruz. (integer) 2 // Artırılmış değer olan 2 döndürülüyor. 127.0.0.1:6379> incr Counter // Counter değerini tekrar 1 artırıyoruz. (integer) 3 // Artırılmış değer olan 3 döndürülüyor. 127.0.0.1:6379> decr Counter // Counter değerini 1 azaltıyoruz. (integer) 2 // Azaltılmış değer olan 2 döndürülüyor. 127.0.0.1:6379> decr Counter // Counter değerini tekrar 1 azaltıyoruz. (integer) 1 // Azaltılmış değer olan 1 döndürülüyor. 127.0.0.1:6379> decr Counter // Counter değerini tekrar 1 azaltıyoruz. (integer) 0 // Azaltılmış değer olan 0 döndürülüyor. 127.0.0.1:6379> incrby Counter 5 // Counter değerini 5 artırıyoruz. (integer) 5 // Artırılmış değer olan 5 döndürülüyor. 127.0.0.1:6379> incrby Counter 5 // Counter değerini tekrar 5 artırıyoruz. (integer) 10 // Artırılmış değer olan 10 döndürülüyor. 127.0.0.1:6379> decrby Counter 5 // Counter değerini 5 azaltıyoruz. (integer) 5 // Azaltılmış değer olan 5 döndürülüyor. 127.0.0.1:6379> decrby Counter 5 // Counter değerini tekrar 5 azaltıyoruz. (integer) 0 // Azaltılmış değer olan 0 döndürülüyor. 127.0.0.1:6379>
INCR
String olarak saklanan bir sayısal değeri 1 artırmak için kullanılır.DECR
String olarak saklanan bir sayısal değeri 1 azaltmak için kullanılır.INCRBY
String olarak saklanan bir sayısal değeri belirtilen sayıda artış yapmak için kullanılır..DECRBY
String olarak saklanan bir sayısal değeri belirtilen sayıda azalış yapmak için kullanılır.0
kabul edilir ve işlem yapılır:text127.0.0.1:6379> set Name "Kubilay" // "Name" key'ine "Kubilay" değerini atıyoruz. OK // İşlem başarılı olduğunu gösterir. 127.0.0.1:6379> get Name // "Name" key'inin değerini kontrol ediyoruz. "Kubilay" // Atanan değer olan "Kubilay" döndürülüyor. 127.0.0.1:6379> SETRANGE Name 5 " Redis" // 5. indeksten başlayarak " Redis" ile değiştiriyoruz. (integer) 11 // Yeni string uzunluğu döndürülüyor. 127.0.0.1:6379> get Name // Değiştirilmiş değeri kontrol ediyoruz. "Kubil Redis" // 5. indeksten sonrası değiştirildi. 127.0.0.1:6379>
\x00
(null byte) ile doldurulur.SETRANGE
ile kısmi string değişiklikleri yapılabilir.text127.0.0.1:6379> SET mesaj "Redis Çok Hızlıdır" // "mesaj" key'ine örnek bir string atıyoruz. OK // İşlem başarılı olduğunu gösterir. 127.0.0.1:6379> GETRANGE mesaj 0 4 // 0. indeksten 4. indekse kadar karakterleri alıyoruz. "Redis" // İlk 5 karakter döndürülüyor. 127.0.0.1:6379> GETRANGE mesaj 6 8 // 6. indeksten 8. indekse kadar karakterleri alıyoruz. "Çok" // Belirtilen aralıktaki karakterler döndürülüyor. 127.0.0.1:6379> GETRANGE mesaj 12 100 // 12. indeksten 100. indekse kadar (string sonuna kadar). "Hızlıdır" // String'in kalan kısmı döndürülüyor.
GETRANGE
, string'in sadece bir parçasını okumak için performanslı bir yoldur.-1
: son karakter).text127.0.0.1:6379> SET mesaj "Redis" // "mesaj" key'ine "Redis" değerini atıyoruz. OK // İşlem başarılı olduğunu gösterir. 127.0.0.1:6379> STRLEN mesaj // "mesaj" key'inin karakter uzunluğunu kontrol ediyoruz. (integer) 5 // "Redis" kelimesinin 5 karakter olduğu döndürülüyor. 127.0.0.1:6379> SET veri "Merhaba Dünya!" // "veri" key'ine "Merhaba Dünya!" değerini atıyoruz. OK // İşlem başarılı olduğunu gösterir. 127.0.0.1:6379> STRLEN veri // "veri" key'inin karakter uzunluğunu kontrol ediyoruz. (integer) 14 // "Merhaba Dünya!" cümlesinin 14 karakter olduğu döndürülüyor.
0
döner.