Radek Musil
About meSkills
Services
My Projects
AI news
Contact me
Zpět na slovník

Cachování

InfrastrukturaCaching

Také známo jako Cache, Mezipaměť, Memoizace

Stručně

Uložení drahého výsledku, aby další požadavek stál skoro nic — silné a snadno nenápadně špatné.

Cachování znamená spočítat něco jednou a servírovat uloženou kopii, dokud není neplatná. Je ve vrstvách: prohlížeč, CDN, paměť aplikace nebo Redis a samotná databáze. Každá vrstva je kopie, která může být špatná, takže otázka není jen „jak to zacachuju“, ale „jak poznám, kdy kopii zahodit“.

Dva těžké problémy

Invalidace: změní se cena produktu a cache dvacet minut ukazuje starou. Řešte to klíči, které umíte spočítat, ne uhodnout — cachujte podle ID produktu a verze a při změně dat verzi zvyšte. Časová expirace (TTL) je záchranná síť, ne plán.

Pojmenování: klíče, které kolidují, nebo jsou moc hrubé. Klíč „homepage“ znamená jednu položku pro všechny uživatele, jazyky a měny. „homepage:cs:CZ:anon“ znamená přesně to, co potřebujete. Klíč spočítejte v jedné funkci a používejte ji všude, jinak se rozuteče.

Kdy cache schová chybu

Když je stránka pomalá kvůli N+1 dotazům, cachování výsledku ji udělá rychlou, dokud se data nezmění — pak je zase pomalá a pomalá cesta zmizela ze zorného pole. Zacachovaný desetisekundový dotaz vypadá ve vývoji jako odpověď za 20 ms a po nasazení jako timeout za 10 sekund. Nejdřív opravte dotaz, cachujte potom.

Cache taky schová rozbitou invalidaci. Fronta zastaralých cen není výkonnostní zisk, ale datová chyba, která čeká na den s provozem. A nemá smysl cachovat jeden dotaz na stránce, která se spustí dvakrát denně — složitost přežije úsporu.

Zdroje

  • MDN — HTTP caching

Související pojmy

CDN

Síť edge serverů, které servírují vaše soubory blízko uživatele — rozhodují cache hlavičky, purge když je potřeba.

Problém N+1 dotazů

Jeden dotaz na seznam plus jeden na každý řádek: rychlé s 10 řádky ve vývoji, smrtelné s 500 v produkci.

Výkonnostní rozpočet

Tvrdý limit váhy stránky, JavaScriptu nebo času načtení, který hlídá CI, aby web nezpomaloval po jedné funkci.

Zpět na slovník
Autentizace a autorizaceCDN
Radek Musil|Product Engineer
·
|Helper·Privacy Policy·Cookies·Terms of Use|

© 2026 Radek Musil. All rights reserved.