

Cacheovanie je pravdepodobne jedna z najefektívnejších optimalizácií výkonu e-shopu z hľadiska pomeru cena/výkon. Správne implementované cacheovanie dokáže znásobiť kapacitu vášho servera, dramaticky skrátiť časy načítania a znížiť náklady na infraštruktúru — bez zmeny samotného kódu. A predsa ju väčšina e-shopov implementuje iba povrchne, alebo nie správne.
V tomto článku si prejdeme cacheovanie od základov po pokročilé stratégie — s konkrétnymi odporúčaniami pre e-commerce kontexty.
E-shop má niekoľko charakteristík, ktoré robia cacheovanie obzvlášť cenným:
Bez cacheovanie musí každý request generovať HTML od nuly — databázové dotazy, šablónovanie, agregácia dát. S cacheovaním väčšina requestov vráti predpripravený výsledok za zlomok milisekundy.
Prvá obranná línia. CDN servery cachujú statické súbory (obrázky, CSS, JS) a môžu cachovať aj celé HTML stránky. Requesty na cachovaný obsah nikdy nedosiahnu váš server — obslúži ich CDN edge server v blízkosti zákazníka.
Pre e-commerce: produktové stránky, ktoré sa nemenia alebo sa menia zriedka, sú ideálni kandidáti na CDN cache s dlhou TTL (Time-to-Live).
Na úrovni aplikácie môžete cachovať výsledky drahých operácií — komplexné databázové dotazy, agregácie, volania externých API. Redis je de facto štandard pre application cache v e-commerce.
Príklady:
Databázy (PostgreSQL, MySQL) majú vlastné query cache mechanizmy. Správne indexy a optimalizované dotazy sú základom, ale pre časté, rovnaké dotazy môže byť database cache výraznou pomocou.
Prostredníctvom HTTP hlavičiek (Cache-Control, ETag) inštruujete prehliadač zákazníka, čo môže cachovať a ako dlho. Obrázky, fonty a statické assety by mali mať dlhú TTL — zákazník ich nemusí sťahovať pri každej návšteve.
Headless architektúra, aká je použitá pri frontendoch pre platformu Grandus, prináša výnimočné možnosti pre cacheovanie na úrovni frameworku.
Next.js ponúka niekoľko cacheovacích stratégií:
Výsledok: produktové stránky sa servírujú zo statického cache (blazing fast), ale aktualizujú sa okamžite pri zmene dát.
Phil Karlton, legendárny počítačový vedec, povedal: „V computer science sú len dve ťažké veci: cache invalidation a pomenovanie vecí."
Cache invalidation je proces, pri ktorom označíte cachovaný obsah ako neplatný, keď sa zdrojové dáta zmenia. V e-commerce je toto kritické:
Stratégie invalidácie:
Rovnako dôležité ako vedieť, čo cachovať, je vedieť, čo nie:
Cachovaný košík jedného zákazníka zobrazený inému zákazníkovi je nielen bug, ale potenciálne aj bezpečnostný incident.
Ako viete, že vaše cacheovanie funguje správne? Sledujte:
Cacheovanie nie je len technická optimalizácia. Je to architektonická disciplína, ktorá vyžaduje pochopenie biznis procesov, vzorcov zmien dát a zákazníckych potrieb. Dobre implementované cacheovanie je tichá, nenápadná výhoda — zákazník si nevšimne, že existuje, ale okamžite si všimne, keď chýba.
E-shopy, ktoré berú cacheovanie vážne, zvládajú Black Friday bez potenia. Tie, ktoré ho ignorujú, zistia limity svojej infraštruktúry práve vtedy, keď by mali predávať.

Expertné konzultácie v oblasti eshopov poskytujeme nielen našim klientom, ale je možné si dohodnúť konzultáciu aj Vášho eshop alebo web riešenia.
