Průvodci

Co je cache? Srozumitelný průvodce pro tvůrce aplikací

Cache znamená uchovávání připravené kopie něčeho, co bylo pomalé nebo drahé získat, takže další požadavek na to lze rychle vyřídit z této kopie. Uložené kopii se říká cache (mezipaměť). Prohlížeč ukládá obrázky, aby se web při vaší druhé návštěvě načetl rychleji; server ukládá výsledek pomalého databázového dotazu, aby ho nemusel spouštět pro každého návštěvníka.

Cache dělá aplikace rychlejšími a levnějšími na provoz. Jejím velkým kompromisem je, že kopie může zastarat.

Proč na cache záleží, když stavíte s AI

S cache se v aplikacích postavených pomocí AI setkáte třemi způsoby:

  • „Aplikaci jsem aktualizoval, ale pořád vidím starou verzi." Toto je nejčastější situace s cache a obvykle je neškodná — váš prohlížeč nebo CDN ukazuje uloženou kopii.
  • Rychlost. Pokud je stránka pomalá, protože pro každého návštěvníka přepočítává stejná čísla, cache výsledku může způsobit, že bude působit okamžitě.
  • Náklady. Mnoho AI nástrojů a hostingů účtuje výpočetní výkon, čas databáze a volání externích API. Pokud tisíc návštěvníků spustí tentýž drahý požadavek, cache vám umožní zaplatit za něj jen jednou.

Znalost základů vám umožní požádat o cache tam, kde pomůže, a poznat ji, když je důvodem, proč něco vypadá špatně.

Každodenní přirovnání

Představte si kuchyni rušné kavárny.

Kuchař by každou kávu mohl uvařit z čerstvě namletých zrn, až si ji někdo objedná. To je pomalé. Místo toho má na plotně připravený konvici filtrované kávy. Většina zákazníků dostane šálek během sekund — to je zásah cache. Když konvice dojde, někdo uvaří novou — to je minutí cache.

Káva ale delší dobu stojící zestárne, takže kavárna má pravidlo: vyhodit každou konvici starší než 30 minut. Tohle pravidlo je doba platnosti cache. Nikdo by neudržoval tutéž konvici celý den a nikdo by nepředvařil něčí zakázkovou objednávku s ovesným mlékem a třemi cukry — některé věci se vůbec nemají cachovat.

Kde cache žijí

Jedno načtení stránky může projít několika cache, od nejbližší uživateli po nejvzdálenější:

CacheKde jeCo obvykle ukládáPříklad
Cache prohlížečeNa zařízení návštěvníkaObrázky, styly, skripty, písmaVaše logo se na druhé stránce načte okamžitě
CDN cacheServery po celém světě, blízko návštěvníkůStatické soubory a někdy celé stránkyNávštěvník v Tokiu dostane soubory z nedalekého serveru, ne z vašeho zdroje
Aplikační cacheNa serveru nebo vedle něj, často v paměti nebo v RedisVýsledky pomalých dotazů nebo volání externích APIDnešní směnné kurzy, stažené jednou za hodinu
Cache databázeUvnitř databázeNedávno použitá data a plány dotazůOblíbené řádky zůstávají v rychlé paměti

CDN (síť pro doručování obsahu) je v podstatě celosvětová síť cache pro soubory vašeho webu.

Jak cache rozhoduje, co si ponechat

Každá cache musí odpovědět na stejné otázky:

  • Co se smí cachovat? Veřejná, sdílená data (obrázek produktu, blogový příspěvek) — ano. Soukromá data (stránka účtu uživatele, jeho zprávy) — nikdy ve sdílené cache.
  • Jak dlouho? To je TTL (time to live, doba životnosti). Logo se může cachovat rok; stav skladu třicet sekund.
  • Jak se aktualizuje? Buď kopie vyprší a načte se znovu, nebo ji aplikace při změně dat záměrně odstraní — tomu se říká invalidace.

U webů server říká prohlížečům a CDN, jak cachovat každý soubor, pomocí hlavičky Cache-Control. Například Cache-Control: max-age=3600 znamená „tuto kopii můžete použít znovu hodinu".

Moderní build nástroje zvládnou nejtěžší část u statických souborů pomocí cache busting: pokaždé, když se soubor změní, dostane nový název s otiskem, například app.3f9a2c.js. Prohlížeče mohou starý název cachovat dlouho, protože nová verze má prostě jiný název.

Praktický příklad: katalog produktů

Máte malý online obchod. Domovská stránka zobrazuje z databáze 50 produktů s cenami a stavem skladu, plus seznam „populární", který vyžaduje pomalý výpočet přes všechny objednávky.

  1. Obrázky a skripty cachují prohlížeč a CDN na dlouho. Každý nový build dá změněným souborům nové názvy, takže se aktualizace stále projeví.
  2. Seznam populárních se počítá jednou za 10 minut a ukládá se do aplikační cache. Každý návštěvník během těch 10 minut dostane uložený výsledek okamžitě.
  3. Ceny se cachují krátce a cache se vymaže vždy, když upravíte produkt, takže zákazníci nikdy dlouho neuvidí starou cenu.
  4. Sklad při pokladně se nikdy necachuje. Když někdo klikne na „Koupit", aplikace zkontroluje skutečnou databázi, takže nemůže prodat zboží, které právě došlo.
  5. Košík a stránky účtu se nikdy neukládají do sdílených cache, protože jsou osobní.

Výsledek: domovská stránka je rychlá, databáze dělá mnohem méně práce a nic, na čem záleží na penězích nebo soukromí, není nikdy zastaralé.

Klíčové pojmy

PojemVýznam
Zásah / minutí cacheData byla v cache nalezena / musela se získat ze zdroje.
TTL (time to live)Jak dlouho se uložená kopie považuje za čerstvou.
Zastaralá dataUložená kopie, která je neaktuální.
InvalidaceZáměrné odstranění uložené kopie, protože se originál změnil.
Cache bustingZměna názvu nebo URL souboru při jeho změně, aby cache načetla novou verzi.
Cache-ControlHlavička HTTP, která říká prohlížečům a CDN, jak mají odpověď cachovat.
Tvrdé obnoveníZnovunačtení stránky s pokynem prohlížeči, aby ignoroval svou cache.
RedisOblíbené úložiště dat v paměti, často používané jako aplikační cache.

Časté omyly

  • „Cache je vždy dobrá." Cachování špatné věci způsobuje skutečné chyby: staré ceny, chybějící nové příspěvky nebo — v nejhorším případě — soukromou stránku jednoho uživatele zobrazenou jinému. Cachujte promyšleně.
  • „Když vidím starou verzi, aktualizace selhala." Obvykle ne. Zkuste tvrdé obnovení (Ctrl+Shift+R, nebo Cmd+Shift+R na Macu) nebo okno v anonymním režimu, než předpokládáte, že je něco rozbité.
  • „Cache opraví pomalou aplikaci." Skrývá pomalost u opakovaných požadavků. První požadavek je stále pomalý, a pokud je základní problém chybějící index databáze, opravte i ten.
  • „Měl bych cachovat všechno co nejdéle." Dlouhé doby cache se hodí pro soubory, které dostanou nový název, když se změní. U HTML stránek a dat jsou kratší časy bezpečnější.
  • „Vymazání mé cache to opraví pro všechny." Vymaže jen vaši cache v prohlížeči. Návštěvníci a CDN cache mají své vlastní kopie.

Na co se zeptat svého AI nástroje

  • „Které části této aplikace jsou pomalé a které by se daly bezpečně cachovat?"
  • „Cachuj [seznam populárních / výsledek API] na [N] minut a vymaž ho, když se změní podkladová data."
  • „Zajisti, aby žádnou stránku s osobními nebo účtovými údaji nemohla cachovat CDN ani sdílená cache."
  • „Nastav dlouhé doby cache pro statické soubory s otiskem a krátké pro HTML."
  • „Cachuj odpovědi z [externího API], abychom ho nevolali při každém načtení stránky — a řekni mi, jak moc mohou tato data zastarat."
  • „Po publikování vidím starou verzi. Je to cache mého prohlížeče, nebo něco nebylo nasazeno?"

Cache v Mythexu

Po publikování aktualizace Mythex aplikace dokumentace uvádí, že CDN cache může chvíli zaostávat, a tvrdé obnovení veřejné URL ukáže novou verzi — viz Jak publikovat. Stránka Limity hostingu také doporučuje cachovat statické prostředky, protože hosting, čas databáze a přenos se platí z vašeho kreditního zůstatku. Cokoli nad to — cachování výsledků dotazů nebo odpovědí API — je něco, o co agenta požádáte, aby to zabudoval do vaší aplikace.

Další čtení: co je CDN, jak zrychlit web a co je omezení počtu požadavků.

Otázky

Co je cache jednoduše řečeno?

Cache znamená uložení kopie něčeho, co bylo pomalé nebo drahé získat, aby se při příštím požadavku mohlo rychle vydat z uložené kopie. Prohlížeče, CDN, servery i databáze používají cache, aby aplikace běžela rychleji a levněji.

Proč po aktualizaci webu stále vidím starou verzi?

Váš prohlížeč nebo CDN pravděpodobně vrací uloženou kopii starých souborů. Tvrdé obnovení stránky (Ctrl+Shift+R ve Windows, Cmd+Shift+R na Macu) to obvykle spraví. U návštěvníků dobře postavené weby dávají aktualizovaným souborům nové názvy, takže cache sama stáhne novou verzi.

Co dělá vymazání cache?

Vymazání cache prohlížeče smaže uložené kopie souborů a stránek, takže se při příštím načtení všechno stáhne znovu. Může opravit stránky, které vypadají rozbitě nebo zastarale, a první načtení poté bude o něco pomalejší.

Může cache způsobit problémy?

Ano. Hlavním rizikem je zastaralý obsah — stará cena, neaktuální stav skladu — nebo ještě hůř uložení soukromé stránky jednoho uživatele a její zobrazení někomu jinému. Dobrá pravidla pro cache určují, co se smí ukládat, jak dlouho, a osobní údaje se nikdy neukládají do sdílených cache.

Mythex · Pricing · Vytvořte cokoli s AI · Šablony webů a aplikací · Mythex v porovnání · Slovník tvorby aplikací s AI · Bezplatné nástroje pro tvorbu aplikací s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)