Redis — saytlar və mağazalar üçün yaddaşda keşləmə
Redis 4buildsite üzərində qurulan saytların, mağazaların və marketplace-lərin arxasındakı sürət qatıdır: ani təqdim olunmalı məlumatları — keşlənmiş səhifələri, sessiyaları, səbətləri, rate limit-ləri — yaddaşda (RAM) saxlayır və millisaniyədən az müddətdə cavab verir. PostgreSQL həqiqət mənbəyi olaraq qalır; Redis onu yüksək trafik altında qoruyur və təcrübəni ani edir. Platformaya daxildir və idarə olunur, sizdən heç bir konfiqurasiya tələb olunmur.
Redis nədir və niyə bu qədər sürətlidir
Redis (REmote DIctionary Server) açıq mənbəli yaddaşdaxili verilənlər bazasıdır: məlumatı diskdə deyil, RAM-da saxlayır və buna görə millisaniyədən az müddətdə cavab verir. 4buildsite-də onu PostgreSQL-in qarşısında sürətləndirici qat kimi istifadə edirik — ani təqdim olunmalı hər şey üçün: səhifələr, sessiyalar, səbətlər və rate limit-lər.
Diskdən fərqli olaraq RAM bir neçə dəfə sürətlidir, Redis isə əsas verilənlər bazasına müraciət etmədən birbaşa yaddaşda mürəkkəb əməliyyatlara imkan verən yerli məlumat strukturları (string, hash, list, set, sorted set, stream) əlavə edir. Əmrlərin emalı tək axınlıdır, buna görə davranış proqnozlaşdırıla bilir və race condition-lardan azaddır.
- Tək node-da tipik gecikmə 1 ms-dən az və saniyədə 100 000-dən çox əməliyyat
- Yerli strukturlar: sessiyalar üçün hash-lər, liderlər cədvəli və rate limiting üçün sorted set-lər, növbələr üçün stream-lər
- Əmrlər üzrə tək axınlı → proqnozlaşdırıla bilən davranış, mürəkkəb kilidləmə yoxdur
Keşləmə: səhifələriniz və məlumatlarınız ani təqdim olunur
Strategiya cache-aside-dır: ilk sorğu PostgreSQL-dən oxuyur və nəticəni TTL (time to live) ilə Redis-də saxlayır; sonrakı sorğular onu birbaşa yaddaşdan alır. Səhifəni redaktə etdikdə açar açıq şəkildə etibarsız sayılır — kor TTL ilə köhnə məlumat təqdim etmirik.
Təqdimat saytı və ya mağaza üçün bu o deməkdir ki, məhsul siyahıları, menyular, populyar səhifələr və məzmun fraqmentləri yüksək trafik altında belə verilənlər bazasını yükləmədən çatdırılır. Pik anlarda (kampaniya, Black Friday) Redis təkrarlanan sorğuları qəbul edir.
- Açıq invalidasiya ilə cache-aside — köhnə məlumat yoxdur
- Yalnız bütöv səhifələri yox, səhifə fraqmentlərini və sorğu nəticələrini də keşləyir
- Trafik piklərində PostgreSQL-i qoruyur, cavab müddətini azaldır
Sessiyalar, alış-veriş səbəti və sui-istifadədən qorunma
İstifadəçi sessiyaları və refresh token-lər Redis-də yaşayır: sürətli autentifikasiya, TTL ilə avtomatik başa çatma və istifadəçi çıxış etdikdə və ya parolunu dəyişdikdə bütün cihazlarda ani ləğv.
4buildsite üzərində qurulan mağazalarda alış-veriş səbəti autentifikasiya olunmamış ziyarətçilər üçün Redis-də saxlanılır — müddətli, əsas verilənlər bazasını şişirtmədən. Redis həmçinin əlaqə formalarında və giriş zamanı sorted set-lərdən istifadə edərək rate limiting tətbiq edir, spam və brute-force cəhdlərini verilənlər bazasına çatmamış dayandırır.
- Avtomatik başa çatma və seçici token ləğvi ilə sessiya saxlancı
- Anonim ziyarətçilər üçün TTL-li davamlı səbət
- Formalarda və autentifikasiyada rate limiting və sui-istifadədən qorunma
Real vaxt və arxa plan iş növbələri
Redis Pub/Sub və Streams real vaxt yeniləmələrini təmin edir: ehtiyatın canlı azalması, tətbiqdaxili bildiriş, sifariş statusunun dəyişməsi — hamısı ziyarətçi səhifəni yeniləmədən və serveri yoran təkrarlanan polling olmadan.
Ağır tapşırıqlar (şəkil emalı, ixracın yaradılması, sinxronizasiya) Redis növbəsinə düşür və arxa plan worker-ləri tərəfindən icra olunur, beləliklə ziyarətçi ani cavab alır. Paylanmış kilidləmə mexanizmi kritik əməliyyatın iki dəfə icra olunmamasını təmin edir.
- Canlı hadisələr (ehtiyat, sifarişlər, bildirişlər) üçün Pub/Sub və Streams
- Ağır emal üçün asinxron icra olunan iş növbələri
- İki dəfə icra olunmamalı əməliyyatlar üçün paylanmış kilidləmə
Üstünlüklər və məhdudiyyətlər
Üstünlüklər
- 1 ms-dən az cavab: keşlənmiş məlumat praktiki olaraq ani təqdim olunur
- Yüksək trafik altında PostgreSQL yükünü kəskin azaldır
- Sessiyalar, səbət, rate limiting və liderlər cədvəli üçün yerli strukturlar
- Polling olmadan real vaxt funksiyaları üçün Pub/Sub və Streams
- Ziyarətçini bloklamadan ağır emal üçün iş növbələri
- Platformaya daxildir və idarə olunur — sizdən sıfır konfiqurasiya
Məhdudiyyətlər
- Məlumat RAM-da yaşayır, bu diskdən bahalıdır → böyük həcmli “soyuq” məlumat üçün uyğun deyil
- Bu keş / köməkçi qatdır, həqiqət mənbəyi deyil — daimi məlumat PostgreSQL-də qalır
- Persistence (RDB/AOF) çökmə zamanı son saniyələrin itirilməsi riskini azaldır, lakin tam aradan qaldırmır
- Düzgün invalidasiya strategiyası tələb edir, əks halda köhnə məlumat təqdim edə bilər
Qısa nəticə
Redis-i ani olmalı hər şey üçün istifadə edin — keşləmə, sessiyalar, səbət, rate limiting, real vaxt və iş növbələri. Onu əsas məlumat anbarı kimi istifadə etməyin; bunun üçün PostgreSQL qalır. 4buildsite-də hər ikisi avtomatik qoşulmuş şəkildə sizdədir: heç nə seçməli və ya konfiqurasiya etməli deyilsiniz.
Spesifikasiyalar cədvəli
| İmkan | Təfərrüat | Builder-də harada istifadə olunur |
|---|---|---|
| Gecikmə | < 1 ms (yaddaşdaxili) | Səhifələr və məlumat ani təqdim olunur |
| Ötürmə qabiliyyəti | > 100,000 ops/s per node | Verilənlər bazası çökmədən yüksək trafik |
| Məlumat strukturları | string, hash, list, set, sorted set, stream | Sessiyalar, səbət, liderlər cədvəli, növbələr, rate limiting |
| Persistence | RDB snapshot + AOF log | Yenidən başlatmadan sonra sürətli bərpa |
| Başa çatma | Hər açar üçün TTL | Özünü təmizləyən səbət, sessiyalar və keş |
| Real vaxt | Pub/Sub + Streams | Canlı ehtiyat, bildirişlər, sifariş statusu |
Redis (keş) vs. yalnız verilənlər bazası
| Kriteriya | Redis ilə | Yalnız PostgreSQL |
|---|---|---|
| Təkrarlanan məlumat üçün cavab müddəti | 1 ms-dən az, yaddaşdan | on ms-lərlə, hər sorğuda bir sorğu |
| Yüksək trafik altında | verilənlər bazası qorunur, asan miqyaslanır | verilənlər bazası tıxanır, timeout riski var |
| Səbət və sessiyalar | sürətli, avtomatik başa çatma ilə | böyüyən və verilənlər bazasını yükləyən cədvəllər |
| Real vaxt | yerli Pub/Sub və Streams | təkrarlanan polling, bahalı |
| İş növbələri | yerli, istifadəsi sadə | təxmini həllər və ya heç nə |
Tez-tez verilən suallar
Redis qısaca nədir?
Əsas verilənlər bazasının qarşısında keş, sessiya və real vaxt qatı kimi istifadə olunan ultra sürətli yaddaşdaxili verilənlər bazası. Millisaniyədən az müddətdə cavab verir və saytı ani hiss etdirir.
Niyə yalnız PostgreSQL istifadə etməyək?
PostgreSQL həqiqət mənbəyidir (davamlı məlumat), Redis isə təkrarlanan məlumatı millisaniyədən az müddətdə təqdim edir və səbəti, sessiyaları, rate limiting-i və real vaxtı öz üzərinə götürərək verilənlər bazasını yüksək trafik altında qoruyur. İkisi birlikdə işləyir.
Redis dayansa məlumat itirirəmmi?
Sayt məzmununuzu yox: daimi məlumat PostgreSQL-dədir. Redis yalnız keş və müvəqqəti məlumat saxlayır, RDB/AOF persistence isə itkiləri azaldır. Redis-in yenidən başladılması dərc olunmuş saytınıza təsir etmir.
Redis-i özüm konfiqurasiya etməliyəmmi?
Xeyr. O, 4buildsite platformasına daxildir və onun tərəfindən idarə olunur; heç nəyi idarə etmədən sürəti və real vaxt funksiyalarını əldə edirsiniz.
Redis onlayn mağazaya necə kömək edir?
Ziyarətçilər üçün səbət, keşlənmiş məhsul siyahıları, canlı yenilənən ehtiyat və ödəniş və formalarda sui-istifadədən qorunma — hamısı verilənlər bazasını yükləmədən.
Redis TTFB-yə necə təsir edir?
Keşlənmiş məlumat birbaşa yaddaşdan təqdim olunur, verilənlər bazasına sorğu göndərilmir. TTFB (Time to First Byte) brauzerin serverdən ilk baytı alana qədər keçən müddətdir; keşlənmiş cavablarda serverin bu müddətə əlavə etdiyi emal vaxtı azalır.