EMZETT.
Giriş yap

Redis ve bellek içi anahtar-değer depoları

Kısaca: Redis verileri ana bellekte anahtar-değer çiftleri olarak saklar ve böylece milisaniyenin kesirlerinde yanıt verir; önbellekler, oturumlar ve sayaçlar için tipiktir.

Biraz daha ayrıntılı: Bir anahtar-değer deposu en basit veri tabanı biçimidir: bir anahtarın bir değeri vardır. Redis verileri RAM’de tutar (isteğe bağlı olarak diske yedeklenir) ve dizgilerin yanı sıra listeler, kümeler, hash’ler, sıralı kümeler ve akışlar sunar. Çok hızlıdır, ancak bellek sınırlıdır ve disklerden daha pahalıdır.

Ayrıntılı

Tipik kullanımlar

  • Önbellek: pahalı veri tabanı sorgularının sonuçlarını saniyelerden saatlere kadar sakla.
  • Oturumlar: kullanıcıların oturum açma durumu.
  • Sayaçlar ve hız sınırlama: INCR zaman penceresi başına erişimleri atomik olarak sayar.
  • Skor tabloları: sıralı kümeler (ZADD, ZRANGE).
  • Kuyruklar ve pub/sub: basit mesaj dağıtımı.
  • Dağıtık kilitler.

Örnekler

SET user:42:name "Mia" EX 3600   # 1 saat sonra sona erer
GET user:42:name
INCR views:homepage
LPUSH tasks "send-mail"
ZADD leaderboard 150 "Mia"

EX, sonrasında anahtarın otomatik olarak kaybolduğu bir bitiş süresi (TTL) ayarlar; önbellekler için idealdir.

Kalıcılık ve işletim

Önlem alınmazsa veriler yeniden başlatmada kaybolur. Redis anlık görüntüler (RDB) veya bir salt ekleme günlüğü (AOF) yazabilir. Dayanıklılık için çoğaltma ve Redis Sentinel/Cluster kullanılır. Önbellek olarak veri kaybı genellikle tolere edilebilir; tek veri kaynağı olarak Redis nadiren uygundur. Yönetilen hizmetler (örneğin Upstash, ElastiCache) işletimi üstlenir.

Notlar

Anlamlı anahtar adları seç (alan:id:sütun), önbellek verileri için her zaman bitiş süreleri ayarla, önbellek geçersiz kılmaya dikkat et ve sunucuyu koru (parola, internete açma). Alternatifler: Memcached (yalnızca basit değerler), Valkey (ücretsiz Redis çatalı), Dragonfly.

Ayrıca bak: Upstash Redis, Önbellekleme stratejileri, Hız sınırlama, NoSQL veri tabanları