Redis — in-memory cachovanie pre weby a e-shopy
Redis je vrstva rýchlosti za webmi, e-shopmi a marketplacmi postavenými na 4buildsite: v pamäti (RAM) drží presne tie dáta, ktoré sa musia servírovať okamžite — cachované stránky, relácie, košíky, limity rýchlosti — a odpovedá za menej než milisekundu. Zdrojom pravdy zostáva PostgreSQL; Redis ho chráni pri vysokej návštevnosti. Je súčasťou platformy a spravuje ju platforma, bez akejkoľvek konfigurácie z vašej strany.
Čo je Redis a prečo je taký rýchly
Redis (REmote DIctionary Server) je open-source in-memory databáza: drží dáta v RAM, nie na disku, preto odpovedá za menej než milisekundu. Na 4buildsite ho používame ako vrstvu pred PostgreSQL — pre všetko, čo sa musí servírovať okamžite: stránky, relácie, košíky a limity rýchlosti.
Na rozdiel od disku je RAM o rády rýchlejšia a Redis pridáva natívne dátové štruktúry (string, hash, zoznam, set, sorted set, stream), ktoré umožňujú zložité operácie priamo v pamäti, bez cesty tam a späť do hlavnej databázy. Spracovanie príkazov je single-threaded, takže správanie je predvídateľné a bez race conditions.
- Typická latencia pod 1 ms a viac než 100 000 operácií za sekundu na jednom uzle
- Natívne štruktúry: hashe pre relácie, sorted set pre rebríčky a rate limiting, stream pre fronty
- Single-threaded pri príkazoch → predvídateľné správanie, bez zložitých blokovaní
Cachovanie: vaše stránky a dáta, čítané z pamäte
Stratégiou je cache-aside: prvá požiadavka číta z PostgreSQL a uloží výsledok do Redis s TTL (časom života); nasledujúce požiadavky ho berú priamo z pamäte. Keď upravíte stránku, kľúč sa explicitne zmaže — nikdy neservírujeme zastarané dáta cez slepé TTL.
Pre prezentačný web alebo e-shop to znamená, že zoznamy produktov, menu, obľúbené stránky a fragmenty obsahu sa čítajú z pamäte, nie z databázy, aj pri vysokej návštevnosti. Pri špičkách (kampaň, Black Friday) Redis pohltí opakované požiadavky a odľahčí databázu.
- Cache-aside s explicitnou invalidáciou — žiadne zastarané dáta
- Ukladá fragmenty stránok a výsledky dotazov, nielen celé stránky
- Chráni PostgreSQL pri špičkách návštevnosti tým, že opakované dáta číta z pamäte
Relácie, nákupný košík a ochrana proti zneužitiu
Používateľské relácie a refresh tokeny sú v Redis: rýchla autentifikácia, automatické vypršanie cez TTL a odvolanie na všetkých zariadeniach, keď sa niekto odhlási alebo zmení heslo.
Nákupný košík v e-shopoch postavených na 4buildsite je pre neprihlásených návštevníkov uložený v Redis — s expiráciou, bez zbytočného nafukovania hlavnej databázy. Redis zároveň uplatňuje rate limiting na kontaktných formulároch a pri prihlasovaní pomocou sorted sets, aby zastavil spam a pokusy o útok hrubou silou skôr, než sa dostanú do databázy.
- Session store s automatickým vypršaním a selektívnym odvolaním tokenov
- Perzistentný košík s TTL pre anonymných návštevníkov
- Rate limiting a ochrana proti zneužitiu na formulároch a pri autentifikácii
Reálny čas a fronty úloh na pozadí
Redis Pub/Sub a Streams poháňajú aktualizácie v reálnom čase: zásoba, ktorá klesá naživo, notifikácia v aplikácii, zmena stavu objednávky — všetko bez toho, aby návštevník obnovoval stránku a bez opakovaného pollingu, ktorý unavuje server.
Náročné úlohy (spracovanie obrázka, generovanie exportu, synchronizácia) idú do frontu Redis a vykonávajú ich workery na pozadí, aby návštevník dostal odpoveď bez čakania na dokončenie úlohy. Mechanizmus distribuovaného lockingu zaručuje, že kritická operácia nebeží dvakrát.
- Pub/Sub a Streams pre udalosti naživo (zásoby, objednávky, notifikácie)
- Fronty úloh pre náročné spracovania vykonávané asynchrónne
- Distribuovaný locking pre operácie, ktoré nesmú bežať dvakrát
Výhody a obmedzenia
Výhody
- Odozva pod 1 ms: cachované dáta sa čítajú priamo z pamäte
- Dramaticky znižuje zaťaženie PostgreSQL pri vysokej návštevnosti
- Natívne štruktúry pre relácie, košík, rate limiting a rebríčky
- Pub/Sub a Streams pre funkcie v reálnom čase, bez pollingu
- Fronty úloh pre náročné spracovania, bez blokovania návštevníka
- V cene a spravované platformou — nulová konfigurácia pre vás
Obmedzenia
- Dáta sú v RAM, ktorá je drahšia ako disk → nie je určený pre obrovské objemy „studených“ dát
- Je to cache / pomocná vrstva, nie zdroj pravdy — trvalé dáta zostávajú v PostgreSQL
- Perzistencia (RDB/AOF) znižuje, ale úplne neodstraňuje riziko straty posledných sekúnd pri páde
- Vyžaduje správnu stratégiu invalidácie, inak môže servírovať zastarané dáta
Stručné zhrnutie
Redis používajte na všetko, čo musí byť okamžité — cachovanie, relácie, košík, rate limiting, reálny čas a fronty úloh. Nepoužívajte ho ako hlavné úložisko dát; na to zostáva PostgreSQL. Na 4buildsite máte oboje, automaticky správne zladené: nemusíte si vyberať ani nič konfigurovať.
Tabuľka špecifikácií
| Schopnosť | Detail | Kde sa používa v builderi |
|---|---|---|
| Latencia | < 1 ms (in-memory) | Stránky a dáta čítané z pamäte |
| Priepustnosť | > 100 000 ops/s na uzol | Vysoká návštevnosť s odľahčením databázy |
| Dátové štruktúry | string, hash, list, set, sorted set, stream | Relácie, košík, rebríčky, fronty, rate limiting |
| Perzistencia | Snapshot RDB + log AOF | Rýchla obnova po reštarte |
| Expirácia | TTL na kľúč | Košík, relácie a cache s automatickým čistením |
| Reálny čas | Pub/Sub + Streams | Zásoby naživo, notifikácie, stav objednávky |
Redis (cache) vs. iba databáza
| Kritérium | S Redis | Iba PostgreSQL |
|---|---|---|
| Čas odozvy pri opakovaných dátach | pod 1 ms, z pamäte | desiatky ms, dotaz pri každej požiadavke |
| Pri vysokej návštevnosti | databáza chránená, ľahko sa škáluje | databáza sa preťaží, hrozia timeouty |
| Košík a relácie | rýchle, s automatickou expiráciou | tabuľky, ktoré rastú a zaťažujú databázu |
| Reálny čas | natívne Pub/Sub a Streams | opakovaný polling, nákladný |
| Fronty úloh | natívne, jednoduché na použitie | improvizované riešenia alebo žiadne |
Často kladené otázky
Čo je Redis, stručne?
Ultra rýchla in-memory databáza, používaná ako vrstva cache, relácií a reálneho času pred hlavnou databázou. Odpovedá za menej než milisekundu a odľahčuje hlavnú databázu pri vysokej návštevnosti.
Prečo nepoužívate iba PostgreSQL?
PostgreSQL je zdroj pravdy (trvalé dáta), no Redis servíruje opakované dáta za menej než milisekundu a preberá košík, relácie, rate limiting a reálny čas, čím chráni databázu pri vysokej návštevnosti. Obe fungujú spolu.
Prídem o dáta, ak Redis spadne?
Nie o obsah webu: trvalé dáta sú v PostgreSQL. V Redis je iba cache a dočasné dáta a perzistencia RDB/AOF znižuje straty. Reštart Redis neovplyvní váš zverejnený web.
Musím Redis konfigurovať ja?
Nie. Je súčasťou platformy 4buildsite a spravuje ju platforma; vy profitujete z funkcií v reálnom čase bez toho, aby ste čokoľvek spravovali.
Ako Redis pomáha e-shopu?
Rýchly košík pre návštevníkov, cachované zoznamy produktov, zásoby aktualizované naživo a ochrana proti zneužitiu pri checkoute a na formulároch — všetko bez zaťažovania databázy.
Pomáha Redis SEO a Core Web Vitals?
Áno, nepriamo: čas odozvy servera ovplyvňuje TTFB a ten zase Core Web Vitals — signály dôležité pre Google a pre používateľský zážitok.