Redis — in-memory keširanje za sajtove i prodavnice
Redis je sloj brzine iza sajtova, prodavnica i marketplace-ova izgrađenih na 4buildsite-u: u memoriji (RAM) čuva podatke koji se često čitaju — keširane stranice, sesije, korpe, ograničenja učestalosti. Izvor istine ostaje PostgreSQL; Redis ga rasterećuje pri velikom saobraćaju. Uključen je i njime upravlja platforma, bez ikakvog podešavanja sa vaše strane.
Šta je Redis i kako radi
Redis (REmote DIctionary Server) je in-memory baza podataka otvorenog koda: čuva podatke u RAM-u, a ne na disku. Na 4buildsite-u ga koristimo kao sloj ubrzanja ispred PostgreSQL-a — za sve što se često čita: stranice, sesije, korpe i ograničenja učestalosti.
Za razliku od diska, RAM je za nekoliko redova veličine brži, a Redis dodaje nativne strukture podataka (string, hash, lista, set, sorted set, stream) koje omogućavaju složene operacije direktno u memoriji, bez povratnog puta do glavne baze. Obrada komandi je single-threaded, pa je ponašanje predvidljivo i bez race condition-a.
- Tipična latencija ispod 1 ms i preko 100.000 operacija u sekundi na jednom čvoru
- Nativne strukture: hash-evi za sesije, sorted set za rang liste i rate limiting, stream za redove
- Single-threaded na komandama → predvidljivo ponašanje, bez složenih blokada
Keširanje: vaše stranice i podaci, servirani iz memorije
Strategija je cache-aside: prvi zahtev čita iz PostgreSQL-a i čuva rezultat u Redis-u sa TTL-om (vremenom života); naredni zahtevi ga uzimaju direktno iz memorije. Kada uredite stranicu, ključ se eksplicitno briše — nikada ne serviramo zastarele podatke preko slepog TTL-a.
Za prezentacioni sajt ili prodavnicu to znači da se liste proizvoda, meniji, popularne stranice i fragmenti sadržaja isporučuju iz memorije, bez opterećivanja baze podataka. Pri vrhuncima (kampanja, Black Friday) Redis apsorbuje ponovljene zahteve.
- Cache-aside sa eksplicitnom invalidacijom — bez zastarelih podataka
- Pamti fragmente stranica i rezultate upita, a ne samo cele stranice
- Štiti PostgreSQL pri vrhuncima saobraćaja, skraćujući vreme odgovora
Sesije, korpa za kupovinu i zaštita od zloupotrebe
Korisničke sesije i refresh tokeni nalaze se u Redis-u: automatsko isticanje preko TTL-a i opoziv na svim uređajima kada se neko odjavi ili promeni lozinku.
Korpa za kupovinu u prodavnicama izgrađenim na 4buildsite-u čuva se u Redis-u za neprijavljene posetioce — sa isticanjem, bez naduvavanja glavne baze. Redis takođe primenjuje rate limiting na kontakt formulare i prijavu, koristeći sorted set-ove, kako bi zaustavio spam i pokušaje grube sile pre nego što stignu do baze podataka.
- Skladište sesija sa automatskim isticanjem i selektivnim opozivom tokena
- Trajna korpa sa TTL-om za anonimne posetioce
- Rate limiting i zaštita od zloupotrebe na formularima i autentifikaciji
Realno vreme i redovi poslova u pozadini
Redis Pub/Sub i Streams pokreću ažuriranja u realnom vremenu: zaliha koja se smanjuje uživo, obaveštenje u aplikaciji, status porudžbine koji se menja — sve to bez osvežavanja stranice od strane posetioca i bez ponovljenog polling-a koji zamara server.
Teški zadaci (obrada slike, generisanje izvoza, sinhronizacija) ulaze u Redis red i izvršavaju ih worker-i u pozadini, kako se zahtev posetioca ne bi zadržavao na tim poslovima. Mehanizam distribuiranog zaključavanja garantuje da se kritična operacija ne izvršava dvaput.
- Pub/Sub i Streams za događaje uživo (zalihe, porudžbine, obaveštenja)
- Redovi poslova za teške obrade koje se izvršavaju asinhrono
- Distribuirano zaključavanje za operacije koje se ne smeju izvršiti dvaput
Prednosti i ograničenja
Prednosti
- Keširani podaci se čitaju iz memorije
- Drastično smanjuje opterećenje PostgreSQL-a pri velikom saobraćaju
- Nativne strukture za sesije, korpu, rate limiting i rang liste
- Pub/Sub i Streams za funkcije u realnom vremenu, bez polling-a
- Redovi poslova za teške obrade, bez blokiranja posetioca
- Uključen i pod upravom platforme — nula podešavanja za vas
Ograničenja
- Podaci stoje u RAM-u, koji je skuplji od diska → nije za ogromne količine „hladnih“ podataka
- To je keš / pomoćni sloj, a ne izvor istine — trajni podaci ostaju u PostgreSQL-u
- Trajnost (RDB/AOF) smanjuje, ali ne eliminiše potpuno rizik od gubitka poslednjih sekundi pri padu
- Zahteva ispravnu strategiju invalidacije, inače može servirati zastarele podatke
Kratak zaključak
Koristite Redis za sve što se često čita — keširanje, sesije, korpu, rate limiting, realno vreme i redove poslova. Ne koristite ga kao glavno skladište podataka; za to ostaje PostgreSQL. Na 4buildsite-u imate obe, automatski usklađene: ne morate da birate niti da podešavate bilo šta.
Tabela specifikacija
| Mogućnost | Detalj | Gde se koristi u builder-u |
|---|---|---|
| Latencija | < 1 ms (in-memory) | Stranice i podaci se čitaju iz memorije |
| Propusnost | > 100.000 ops/s po čvoru | Veliki saobraćaj bez pada baze |
| Strukture podataka | string, hash, list, set, sorted set, stream | Sesije, korpa, rang liste, redovi, rate limiting |
| Trajnost | Snapshot RDB + AOF log | Oporavak posle restarta (RDB/AOF) |
| Isticanje | TTL po ključu | Korpa, sesije i keš sa automatskim čišćenjem |
| Realno vreme | Pub/Sub + Streams | Zalihe uživo, obaveštenja, status porudžbine |
Redis (keš) naspram samo baze podataka
| Kriterijum | Sa Redis-om | Samo PostgreSQL |
|---|---|---|
| Vreme odgovora za ponovljene podatke | ispod 1 ms, iz memorije | desetine ms, upit pri svakom zahtevu |
| Pri velikom saobraćaju | baza zaštićena, lako se skalira | baza se zagušuje, rizik od timeout-a |
| Korpa i sesije | sa automatskim isticanjem | tabele koje rastu i opterećuju bazu |
| Realno vreme | nativni Pub/Sub i Streams | ponovljeni polling, skup |
| Redovi poslova | nativni, jednostavni za korišćenje | improvizovana rešenja ili ih nema |
Često postavljana pitanja
Šta je Redis, ukratko?
In-memory baza podataka, koja se koristi kao sloj keša, sesija i realnog vremena ispred glavne baze. Podatke čuva u RAM-u, a ne na disku.
Zašto ne koristite samo PostgreSQL?
PostgreSQL je izvor istine (trajni podaci), ali Redis servira ponovljene podatke iz memorije i preuzima korpu, sesije, rate limiting i realno vreme, štiteći bazu pri velikom saobraćaju. Njih dvoje rade zajedno.
Da li gubim podatke ako Redis padne?
Ne sadržaj sajta: trajni podaci su u PostgreSQL-u. U Redis-u stoje samo keš i privremeni podaci, a RDB/AOF trajnost smanjuje gubitke. Restart Redis-a ne utiče na vaš objavljeni sajt.
Moram li ja da podešavam Redis?
Ne. Uključen je i pod upravom platforme 4buildsite; vi koristite funkcije u realnom vremenu bez ikakvog administriranja.
Kako Redis pomaže onlajn prodavnici?
Korpa za posetioce, keširane liste proizvoda, zalihe ažurirane uživo i zaštita od zloupotrebe na checkout-u i formularima — sve bez opterećenja baze podataka.
Da li Redis pomaže SEO-u i Core Web Vitals?
Da, posredno: kraće vreme odgovora servera može da utiče na TTFB i Core Web Vitals, signale koji su važni i za Google i za korisničko iskustvo.