Redis — siteler ve mağazalar için bellek içi önbellekleme
Redis, 4buildsite üzerinde kurulan siteler, mağazalar ve marketplace'lerin arkasındaki hız katmanıdır: sık okunan verileri — önbelleğe alınmış sayfalar, oturumlar, sepetler, hız sınırları — bellekte (RAM) tutar. Doğruluk kaynağı PostgreSQL olarak kalır; Redis onu yüksek trafikte yükünü hafifletir. Platforma dahildir ve platform tarafından yönetilir; sizin tarafınızdan hiçbir yapılandırma gerekmez.
Redis nedir ve nasıl çalışır
Redis (REmote DIctionary Server), açık kaynaklı bir bellek içi (in-memory) veritabanıdır: verileri diskte değil RAM'de tutar. 4buildsite'ta onu PostgreSQL'in önünde bir hızlandırma katmanı olarak kullanıyoruz — sık okunan her şey için: sayfalar, oturumlar, sepetler ve hız sınırları.
Bir diske kıyasla RAM kat kat daha hızlıdır ve Redis, ana veritabanına gidip gelmeden karmaşık işlemlerin doğrudan bellekte yapılmasını sağlayan yerel veri yapıları (string, hash, liste, set, sorted set, stream) ekler. Komut işleme tek iş parçacıklıdır (single-threaded), dolayısıyla davranış öngörülebilirdir ve race condition olmaz.
- Tek bir düğümde tipik olarak 1 ms'nin altında gecikme ve saniyede 100.000'in üzerinde işlem
- Yerel yapılar: oturumlar için hash'ler, sıralamalar ve rate limiting için sorted set, kuyruklar için stream
- Komutlarda single-threaded → öngörülebilir davranış, karmaşık kilitlenmeler yok
Önbellekleme: sayfalarınız ve verileriniz bellekten sunulur
Strateji cache-aside'dır: ilk istek PostgreSQL'den okur ve sonucu bir TTL (yaşam süresi) ile Redis'e kaydeder; sonraki istekler onu doğrudan bellekten alır. Bir sayfayı düzenlediğinizde anahtar açıkça silinir — kör bir TTL ile asla eski veri sunmayız.
Bir tanıtım sitesi veya mağaza için bu, ürün listelerinin, menülerin, popüler sayfaların ve içerik parçalarının yüksek trafikte bile veritabanını aşırı yüklemeden bellekten sunulması demektir. Zirvelerde (bir kampanya, Black Friday) Redis tekrarlanan istekleri emer.
- Açık geçersiz kılmalı cache-aside — eski veri yok
- Yalnızca sayfaların tamamını değil, sayfa parçalarını ve sorgu sonuçlarını da saklar
- Trafik zirvelerinde PostgreSQL'i korur, yanıt sürelerini düşürür
Oturumlar, alışveriş sepeti ve kötüye kullanım koruması
Kullanıcı oturumları ve refresh token'lar Redis'te durur: TTL ile otomatik sona erme ve biri çıkış yaptığında veya parolasını değiştirdiğinde tüm cihazlarda iptal.
4buildsite üzerinde kurulan mağazalardaki alışveriş sepeti, oturum açmamış ziyaretçiler için Redis'te tutulur — sona erme süreli ve ana veritabanını şişirmeden. Spam'i ve kaba kuvvet denemelerini veritabanına ulaşmadan durdurmak için, iletişim formlarında ve giriş sayfasında rate limiting'i de sorted set'ler kullanarak Redis uygular.
- Otomatik sona erme ve token'ların seçici iptali ile oturum deposu
- Anonim ziyaretçiler için TTL'li kalıcı sepet
- Formlarda ve kimlik doğrulamada rate limiting ve kötüye kullanım koruması
Gerçek zamanlı ve arka plan iş kuyrukları
Redis Pub/Sub ve Streams, gerçek zamanlı güncellemeleri besler: canlı düşen bir stok, uygulama içi bir bildirim, değişen bir siparişin durumu — hepsi ziyaretçi sayfayı yenilemeden ve sunucuyu yoran tekrarlı polling olmadan.
Ağır görevler (bir görüntünün işlenmesi, bir dışa aktarımın üretilmesi, bir senkronizasyon) bir Redis kuyruğuna girer ve ziyaretçi beklemesin diye arka planda worker'lar tarafından çalıştırılır. Dağıtık bir kilitleme mekanizması, kritik bir işlemin iki kez çalışmamasını garanti eder.
- Canlı olaylar (stok, siparişler, bildirimler) için Pub/Sub ve Streams
- Eşzamansız çalıştırılan ağır işlemler için iş kuyrukları
- İki kez çalışmaması gereken işlemler için dağıtık kilitleme
Avantajlar ve sınırlamalar
Avantajlar
- Önbelleğe alınmış veriler bellekten okunur
- Yüksek trafikte PostgreSQL üzerindeki yükü çarpıcı biçimde azaltır
- Oturumlar, sepet, rate limiting ve sıralamalar için yerel yapılar
- Polling olmadan gerçek zamanlı özellikler için Pub/Sub ve Streams
- Ağır işlemler için ziyaretçiyi bloke etmeyen iş kuyrukları
- Platforma dahil ve platform tarafından yönetilir — sizin için sıfır yapılandırma
Sınırlamalar
- Veriler diskten pahalı olan RAM'de durur → devasa hacimli “soğuk” veriler için uygun değildir
- Bir önbellek / yardımcı katmandır, doğruluk kaynağı değildir — kalıcı veriler PostgreSQL'de kalır
- Kalıcılık (RDB/AOF), bir çökmede son saniyeleri kaybetme riskini azaltır ama tamamen ortadan kaldırmaz
- Doğru bir geçersiz kılma stratejisi gerektirir, aksi halde eski veri sunabilir
Kısa değerlendirme
Sık okunan her şey için Redis'i kullanın — önbellekleme, oturumlar, sepet, rate limiting, gerçek zamanlı ve iş kuyrukları. Onu ana veri deposu olarak kullanmayın; bunun için PostgreSQL kalır. 4buildsite'ta ikisi de otomatik olarak yerli yerinde: hiçbir şey seçmeniz veya yapılandırmanız gerekmez.
Teknik özellikler tablosu
| Yetenek | Ayrıntı | Builder'da kullanıldığı yer |
|---|---|---|
| Gecikme | < 1 ms (bellek içi) | Sayfalar ve veriler bellekten sunulur |
| Verim | Düğüm başına > 100.000 işlem/sn | Veritabanı çökmeden yüksek trafik |
| Veri yapıları | string, hash, list, set, sorted set, stream | Oturumlar, sepet, sıralamalar, kuyruklar, rate limiting |
| Kalıcılık | RDB snapshot + AOF günlüğü | Yeniden başlatmadan sonra kurtarma (RDB/AOF) |
| Sona erme | Anahtar başına TTL | Kendiliğinden temizlenen sepet, oturumlar ve önbellek |
| Gerçek zamanlı | Pub/Sub + Streams | Canlı stok, bildirimler, sipariş durumu |
Redis (önbellek) ve yalnızca veritabanı karşılaştırması
| Kriter | Redis ile | Yalnızca PostgreSQL |
|---|---|---|
| Tekrarlanan verilerde yanıt süresi | 1 ms'nin altında, bellekten | onlarca ms, her istekte sorgu |
| Yüksek trafikte | veritabanı korunur, kolay ölçeklenir | veritabanı tıkanır, zaman aşımı riski |
| Sepet ve oturumlar | otomatik sona ermeli | büyüyen ve veritabanını yükleyen tablolar |
| Gerçek zamanlı | yerel Pub/Sub ve Streams | tekrarlı, maliyetli polling |
| İş kuyrukları | yerel, kullanımı basit | geçici çözümler veya hiç yok |
Sık sorulan sorular
Redis kısaca nedir?
Ana veritabanının önünde önbellek, oturum ve gerçek zamanlı katmanı olarak kullanılan, bir bellek içi veritabanı. Verileri RAM'de tutar, diskte değil.
Neden yalnızca PostgreSQL kullanmıyorsunuz?
PostgreSQL doğruluk kaynağıdır (kalıcı veriler), ancak Redis tekrarlanan verileri bellekten sunar; sepeti, oturumları, rate limiting'i ve gerçek zamanlıyı üstlenerek veritabanını yüksek trafikte korur. İkisi birlikte çalışır.
Redis çökerse veri kaybeder miyim?
Sitenin içeriğini kaybetmezsiniz: kalıcı veriler PostgreSQL'dedir. Redis'te yalnızca önbellek ve geçici veriler durur; RDB/AOF kalıcılığı kayıpları azaltır. Redis'in yeniden başlatılması yayımlanmış sitenizi etkilemez.
Redis'i benim yapılandırmam gerekir mi?
Hayır. 4buildsite platformuna dahildir ve platform tarafından yönetilir; hiçbir şey yönetmeden gerçek zamanlı özelliklerden yararlanırsınız.
Redis bir online mağazaya nasıl yardımcı olur?
Ziyaretçiler için sepet, önbelleğe alınmış ürün listeleri, canlı güncellenen stok ve ödeme sayfasında ile formlarda kötüye kullanım koruması — hepsi veritabanını yüklemeden.
Redis SEO'ya ve Core Web Vitals'a yardımcı olur mu?
Evet, dolaylı olarak: düşük yanıt süreleri TTFB'yi ve Core Web Vitals'ı etkileyebilir; bunlar hem Google hem de kullanıcı deneyimi için önemli sinyallerdir.