Ana içeriğe geç

Redis

Remote Dictionary Server

Okunuşu
redis
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/redis

Kısaca

Redis, okuma ve yazmayı milisaniyenin çok altında yapan bellek içi bir anahtar-değer deposudur; önbellek, oturum deposu ve mesaj aracısı olarak yaygındır.

Redis nedir?

Remote Dictionary Server'ın kısaltması olan Redis, 2009'da Salvatore Sanfilippo tarafından geliştirildi. Veriyi dev bir sözlük gibi anahtar ve değer çiftleri olarak saklar; ama değerler zengin veri yapıları olabilir: metinler (string), listeler, kümeler, sıralı kümeler, hash'ler, akışlar (stream) ve dahası. Her şey diskte değil bellekte durduğu için işlemlerin çoğu mikrosaniyeler içinde biter.

Uygulamalar Redis ile SET, GET, INCR ya da EXPIRE gibi basit komutlarla konuşur. Bir anahtara yaşam süresi (TTL) verilebilir; süre dolunca Redis onu kendiliğinden siler, bu da bir önbelleğin ya da giriş oturumunun tam olarak ihtiyaç duyduğu şeydir. Redis ayrıca anlık görüntüleri ya da yalnızca ekleme yapılan bir günlüğü diske yazabilir; böylece veri yeniden başlatmadan sonra da kalır. Yüksek erişilebilirlik için başka sunuculara da kopyalanabilir.

Tipik kullanımları; veritabanı sonuçlarını önbelleğe almak, kullanıcı oturumlarını saklamak, sayfa görüntülenmeleri ya da hız sınırı denemeleri gibi şeyleri saymak, sıralı kümelerle sıralama tabloları (leaderboard) kurmak ve servisler arasında hafif kuyruklar ya da pub/sub mesajlaşmasıdır. Birçok sistemde PostgreSQL gibi bir ana veritabanının yanında durur ve tekrar tekrar okunan sıcak veriyi tutar.

Sık yapılan bir yanlış, Redis'in yalnızca bir önbellek olduğu düşüncesidir. Tam bir veri deposudur; ama verisinin diskten daha pahalı olan belleğe sığması gerekir, bu yüzden bir uygulamanın tek veritabanı olması nadirdir. 2024'ten bu yana lisansı birden fazla kez değişti; Linux Foundation da aynı komutlarla çalışan Valkey adında açık kaynaklı bir çatallama (fork) sürdürüyor.

Bir bakışta

Redis ile önbellekleme, cache-aside kalıbı. Uygulama Redis'ten user:42'yi ister ve hiçbir şey dönmez, yani ıska; bu yüzden daha yavaş olan veritabanını sorgular, sonra satırı 60 saniyeliğine Redis'e kaydeder. Bir sonraki istekte Redis doğrudan bellekten yanıt verir, yani isabet; veritabanına hiç sorulmaz.UygulamaRedisVeritabanıİlk istekGET user:42(nil): ıskaSELECT … WHERE id = 42satır, birkaç ms sonraSET user:42 … EX 60Sonraki istek, 60 sn içindeGET user:42önbellekteki satır, 1 ms'den kısa süredesorulmadı
İlk istek veritabanının bedelini öder; sonraki 60 saniyedeki her istek bellekten yanıtlanır, sonra anahtarın süresi kendiliğinden dolar.

Önemli noktalar

  • Redis bellek içi bir anahtar-değer deposudur; okuma ve yazma son derece hızlıdır.
  • Değerler metin, liste, küme, sıralı küme, hash ve akış olabilir.
  • Anahtarlar kendiliğinden sona erebilir; bu da önbelleklere ve oturumlara uyar.
  • Veri diske kaydedilebilir ve başka sunuculara kopyalanabilir.
  • Genellikle bir ana veritabanının yerine değil, yanında çalışır.

Örnek

Bir değeri bir dakikalığına önbelleğe almak (Node.js)javascript
import { createClient } from "redis";

const redis = createClient();
await redis.connect();

// Store a value that Redis deletes after 60 seconds
await redis.set("user:42:name", "Ada", { EX: 60 });

const name = await redis.get("user:42:name"); // "Ada"
await redis.incr("page:home:views"); // atomic counter

Sık sorulan sorular

Redis bir veritabanı mı, önbellek mi?

İkisi de. Redis veriyi kalıcı olarak da tutabilen bir veri deposudur; ama verisi bellekte durduğu için çoğunlukla bir ana veritabanının yanında önbellek olarak ya da kısa ömürlü veriler için kullanılır.

Sunucu yeniden başlayınca Redis'teki veriye ne olur?

Kalıcılık kapalıysa kaybolur. Anlık görüntüler (RDB) ya da yalnızca ekleme yapılan dosya (AOF) açıksa Redis yeniden başlarken veriyi diskten geri yükler.

Valkey nedir?

Valkey, Redis lisansını değiştirdikten sonra 2024'te başlatılan ve Linux Foundation çatısı altında sürdürülen, Redis'in açık kaynaklı bir çatallamasıdır. Aynı komutlarla ve istemci kütüphaneleriyle çalışır.

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar