Redis — in-memory caching za web-stranice i web-trgovine
Redis je sloj brzine iza web-stranica, web-trgovina i marketplaceova izgrađenih na 4buildsiteu: u memoriji (RAM-u) drži upravo podatke koje treba poslužiti trenutačno — cacheirane stranice, sesije, košarice, ograničenja brzine — i odgovara u manje od milisekunde. Izvor istine ostaje PostgreSQL; Redis ga štiti pri velikom prometu. Uključen je i vodi ga platforma, bez ikakve konfiguracije s vaše strane.
Što je Redis i zašto je tako brz
Redis (REmote DIctionary Server) je open-source in-memory baza podataka: podatke drži u RAM-u, a ne na disku, pa odgovara u manje od milisekunde. Na 4buildsiteu ga koristimo kao sloj ubrzanja ispred PostgreSQL-a — za sve što treba poslužiti trenutačno: stranice, sesije, košarice i ograničenja brzine.
Za razliku od diska, RAM je za redove veličine brži, a Redis dodaje izvorne strukture podataka (string, hash, lista, set, sorted set, stream) koje omogućuju složene operacije izravno u memoriji, bez povratnog puta do glavne baze. Obrada naredbi je single-threaded, pa je ponašanje predvidljivo i bez race conditiona.
- Tipična latencija ispod 1 ms i preko 100.000 operacija u sekundi na jednom čvoru
- Izvorne strukture: hashevi za sesije, sorted set za top-liste i rate limiting, stream za redove
- Single-threaded na naredbama → predvidljivo ponašanje, bez složenih blokada
Caching: vaše stranice i podaci, poslužani iz memorije
Strategija je cache-aside: prvi zahtjev čita iz PostgreSQL-a i sprema rezultat u Redis s TTL-om (vrijeme života); sljedeći zahtjevi dohvaćaju ga izravno iz memorije. Kada uredite stranicu, ključ se eksplicitno briše, pa se ne oslanjamo na slijepi TTL koji bi mogao poslužiti zastarjele podatke.
Za prezentacijsku web-stranicu ili web-trgovinu to znači da se popisi proizvoda, izbornici, popularne stranice i fragmenti sadržaja isporučuju iz memorije, a ne upitom na bazu podataka. Pri vrhuncima (kampanja, Black Friday) Redis upija ponavljane zahtjeve.
- Cache-aside s eksplicitnom invalidacijom — bez zastarjelih podataka
- Pohranjuje fragmente stranica i rezultate upita, ne samo cijele stranice
- Štiti PostgreSQL pri vrhuncima prometa, smanjujući vrijeme odgovora
Sesije, košarica i zaštita od zlouporabe
Korisničke sesije i refresh tokeni nalaze se u Redisu: brza autentifikacija, automatski istek putem TTL-a i opoziv na svim uređajima kada se netko odjavi ili promijeni lozinku.
Košarica u web-trgovinama izgrađenima na 4buildsiteu drži se u Redisu za neprijavljene posjetitelje — s istekom, bez napuhivanja glavne baze. Redis također primjenjuje rate limiting na kontaktnim obrascima i prijavi, koristeći sorted sets, kako bi zaustavio spam i pokušaje grube sile prije nego što stignu do baze podataka.
- Session store s automatskim istekom i selektivnim opozivom tokena
- Trajna košarica s TTL-om za anonimne posjetitelje
- Rate limiting i zaštita od zlouporabe na obrascima i autentifikaciji
Stvarno vrijeme i redovi poslova u pozadini
Redis Pub/Sub i Streams pokreću ažuriranja u stvarnom vremenu: zaliha koja pada uživo, obavijest u aplikaciji, status narudžbe koji se mijenja — sve bez da posjetitelj osvježava stranicu i bez ponavljanog pollinga koji zamara poslužitelj.
Teški zadaci (obrada slike, generiranje exporta, sinkronizacija) ulaze u Redis red i izvršavaju ih workeri u pozadini, kako posjetitelj ne bi čekao na njih. Mehanizam distribuiranog zaključavanja pomaže da se kritična operacija ne izvrši dvaput.
- Pub/Sub i Streams za događaje uživo (zaliha, narudžbe, obavijesti)
- Redovi poslova za teške obrade koje se izvršavaju asinkrono
- Distribuirano zaključavanje za operacije koje se ne smiju izvršiti dvaput
Prednosti i ograničenja
Prednosti
- Odgovor ispod 1 ms: cacheirani podaci poslužuju se iz memorije
- Dramatično smanjuje opterećenje PostgreSQL-a pri velikom prometu
- Izvorne strukture za sesije, košaricu, rate limiting i top-liste
- Pub/Sub i Streams za funkcije u stvarnom vremenu, bez pollinga
- Redovi poslova za teške obrade, bez blokiranja posjetitelja
- Uključen i vođen platformom — nula konfiguracije za vas
Ograničenja
- Podaci su u RAM-u, koji je skuplji od diska → nije za goleme količine „hladnih“ podataka
- Riječ je o cacheu / pomoćnom sloju, a ne izvoru istine — trajni podaci ostaju u PostgreSQL-u
- Perzistencija (RDB/AOF) smanjuje, ali ne uklanja u potpunosti rizik gubitka zadnjih sekundi pri padu
- Zahtijeva ispravnu strategiju invalidacije, inače može poslužiti zastarjele podatke
Kratak zaključak
Koristite Redis za sve što mora biti trenutačno — caching, sesije, košaricu, rate limiting, stvarno vrijeme i redove poslova. Ne koristite ga kao glavno spremište podataka; za to ostaje PostgreSQL. Na 4buildsiteu imate oboje, automatski usklađeno: ne morate birati niti konfigurirati ništa.
Tablica specifikacija
| Mogućnost | Detalj | Gdje se koristi u builderu |
|---|---|---|
| Latencija | < 1 ms (in-memory) | Stranice i podaci poslužani iz memorije |
| Propusnost | > 100.000 ops/s po čvoru | Velik promet uz rasterećenu bazu |
| Strukture podataka | string, hash, list, set, sorted set, stream | Sesije, košarica, top-liste, redovi, rate limiting |
| Perzistencija | RDB snapshot + AOF log | Brz oporavak nakon restarta |
| Istek | TTL po ključu | Košarica, sesije i cache s automatskim čišćenjem |
| Stvarno vrijeme | Pub/Sub + Streams | Zaliha uživo, obavijesti, status narudžbe |
Redis (cache) u odnosu na samo bazu podataka
| Kriterij | S Redisom | Samo PostgreSQL |
|---|---|---|
| Vrijeme odgovora za ponavljane podatke | ispod 1 ms, iz memorije | deseci ms, upit pri svakom zahtjevu |
| Pri velikom prometu | baza zaštićena, lako skalira | baza se zagušuje, rizik timeouta |
| Košarica i sesije | brze, s automatskim istekom | tablice koje rastu i opterećuju bazu |
| Stvarno vrijeme | izvorni Pub/Sub i Streams | ponavljani polling, skup |
| Redovi poslova | izvorni, jednostavni za korištenje | improvizirana rješenja ili ih nema |
Često postavljana pitanja
Što je Redis, ukratko?
Ultrabrza in-memory baza podataka koja se koristi kao sloj cachea, sesija i stvarnog vremena ispred glavne baze. Odgovara za manje od milisekunde.
Zašto ne koristite samo PostgreSQL?
PostgreSQL je izvor istine (trajni podaci), ali Redis poslužuje ponavljane podatke za manje od milisekunde i preuzima košaricu, sesije, rate limiting i stvarno vrijeme, štiteći bazu pri velikom prometu. Njih dvoje rade zajedno.
Gubim li podatke ako Redis padne?
Ne sadržaj web-stranice: trajni podaci su u PostgreSQL-u. U Redisu su samo cache i privremeni podaci, a RDB/AOF perzistencija smanjuje gubitke.
Moram li ja konfigurirati Redis?
Ne. Uključen je i vodi ga platforma 4buildsite; vi dobivate funkcije u stvarnom vremenu bez ikakvog administriranja.
Kako Redis pomaže web-trgovini?
Košarica za posjetitelje, cacheirani popisi proizvoda, zaliha ažurirana uživo i zaštita od zlouporabe pri checkoutu i na obrascima — sve bez opterećivanja baze podataka.
Pomaže li Redis SEO-u i Core Web Vitalsima?
Da, neizravno: kratka vremena odgovora poboljšavaju TTFB i Core Web Vitals, signale koji su važni za Google i za korisničko iskustvo.