Príručky

Čo je cachovanie? Jednoduchý sprievodca pre tvorcov aplikácií

Cachovanie znamená uchovávanie pripravenej kópie niečoho, čo bolo pomalé alebo drahé na získanie, aby sa ďalšia požiadavka na to dala zodpovedať rýchlo z tejto kópie. Uložená kópia sa volá cache. Prehliadač si ukladá obrázky, aby sa stránka pri druhej návšteve načítala rýchlejšie; server si ukladá výsledok pomalého databázového dotazu, aby ho nemusel spúšťať pre každého návštevníka.

Cachovanie robí aplikácie rýchlejšími a lacnejšími na prevádzku. Jeho jediný veľký kompromis je, že kópia môže zastarať.

Prečo cachovanie záleží, keď stavate s AI

S cachovaním sa v aplikáciách vytvorených AI stretnete na troch miestach:

  • „Aktualizoval som aplikáciu, ale stále vidím starú verziu.“ Toto je najčastejší moment s cachovaním a zvyčajne je neškodný – váš prehliadač alebo CDN zobrazuje uloženú kópiu.
  • Rýchlosť. Ak je stránka pomalá, pretože pre každého návštevníka znova počíta tie isté čísla, cachovanie výsledku ju môže spraviť takmer okamžitou.
  • Náklady. Mnohé nástroje na tvorbu aplikácií a hostingy účtujú výpočtový výkon, čas databázy a volania externých API. Ak tisíc návštevníkov spustí rovnakú náročnú požiadavku, cachovanie vám umožní zaplatiť za ňu len raz.

Základné poznanie vám umožní požiadať o cachovanie tam, kde pomáha, a rozpoznať ho, keď je dôvodom, prečo niečo vyzerá nesprávne.

Každodenná analógia

Predstavte si kuchyňu rušnej kaviarne.

Chef by každú kávu mohol každé ráno uvariť z čerstvo namletých zŕn, keď si ju objednáte. To je pomalé. Namiesto toho má na plotni pripravený zásobník filtrovanej kávy. Väčšina zákazníkov dostane šálku za pár sekúnd – to je zásah cache (cache hit). Keď zásobník dôjde, niekto uvarí novú várku – to je chýbajúca položka v cache (cache miss).

Káva, ktorá stojí dlho, však zostarne, preto má kaviareň pravidlo: každý zásobník starší ako 30 minút sa vyhodí. Toto pravidlo je čas expirácie cache. Nikto by si nenechal ten istý zásobník celý deň a nikto by nevopred neuvaroval zákazníkovu špeciálnu objednávku s ovsným mliekom a tromi lyžičkami cukru – niektoré veci sa vôbec necachujú.

Kde žijú cache

Jedno načítanie stránky môže prejsť cez niekoľko cache, od najbližšej používateľovi po najvzdialenejšiu:

CacheKde jeČo zvyčajne ukladáPríklad
Cache prehliadačaNa zariadení návštevníkaObrázky, štýly, skripty, fontyVaše logo sa na druhej stránke načíta okamžite
CDN cacheServery po celom svete, blízko návštevníkovStatické súbory a niekedy celé stránkyNávštevník v Tokiu dostane súbory z blízkeho servera, nie z vášho pôvodného servera
Cache aplikácieNa serveri alebo vedľa neho, často v pamäti alebo RedisVýsledky pomalých dotazov alebo volaní externých APIDnešné kurzy mien, stiahnuté raz za hodinu
Cache databázyVnútri databázyNedávno použité dáta a plány dotazovObľúbené riadky zostávajú v rýchlej pamäti

CDN (sieť doručovania obsahu) je v podstate celosvetová sieť cache pre súbory vášho webu.

Ako cache rozhoduje, čo si ponechá

Každá cache musí odpovedať na tie isté otázky:

  • Čo sa dá cachovať? Verejné, zdieľané dáta (obrázok produktu, blogový článok) – áno. Súkromné dáta (stránka účtu používateľa, jeho správy) – nikdy v zdieľanej cache.
  • Ako dlho? Toto je TTL (time to live, doba životnosti). Logo sa môže cachovať rok; stav skladu 30 sekúnd.
  • Ako sa aktualizuje? Buď kópia vyprší a získa sa znova, alebo ju aplikácia zámerne odstráni, keď sa dáta zmenia – to sa nazýva invalidácia.

Pri webových stránkach server hovorí prehliadačom a CDN, ako cachovať každý súbor, pomocou hlavičky Cache-Control. Napríklad Cache-Control: max-age=3600 znamená „túto kópiu môžeš použiť znova jednu hodinu“.

Moderné nástroje na zostavenie projektu zvládajú najťažšiu časť pri statických súboroch pomocou cache busting: každý raz, keď sa súbor zmení, dostane nový názov s odtlačkom, napríklad app.3f9a2c.js. Prehliadače môžu starý názov cachovať dlho, pretože nová verzia má jednoducho iný názov.

Praktický príklad: katalóg produktov

Máte malý online obchod. Domovská stránka zobrazuje 50 produktov s cenami a stavom skladu z databázy, plus zoznam „populárne“, ktorý vyžaduje pomalý výpočet cez všetky objednávky.

  1. Obrázky a skripty sú cachované prehliadačom a CDN na dlhý čas. Každé nové zostavenie dá zmeneným súborom nové názvy, takže aktualizácie sa stále zobrazia.
  2. Zoznam populárnych sa počíta raz za 10 minút a ukladá sa v cache aplikácie. Každý návštevník počas tých 10 minút dostane uložený výsledok okamžite.
  3. Ceny sa cachujú krátko a cache sa vyčistí vždy, keď upravíte produkt, takže zákazníci nikdy dlho nevidia starú cenu.
  4. Sklad pri pokladni sa nikdy necachuje. Keď niekto klikne na „Kúpiť“, aplikácia overí skutočnú databázu, takže nemôže predať tovar, ktorý práve vypredal.
  5. Košík a stránky účtu sa nikdy neukladajú do zdieľaných cache, pretože sú osobné.

Výsledok: domovská stránka je rýchla, databáza robí oveľa menej práce a nič, čo je dôležité pre peniaze alebo súkromie, nie je nikdy zastarané.

Kľúčové pojmy

PojemVýznam
Zásah / chýbajúca položka cache (hit / miss)Dáta sa našli v cache / museli sa získať z pôvodného zdroja.
TTL (time to live)Ako dlho sa uložená kópia považuje za čerstvú.
Zastaralé dátaUložená kópia, ktorá je neaktuálna.
InvalidáciaZámerné odstránenie uloženej kópie, pretože pôvodný zdroj sa zmenil.
Cache bustingZmena názvu alebo URL súboru pri jeho zmene, aby cache stiahla novú verziu.
Cache-ControlHTTP hlavička, ktorá hovorí prehliadačom a CDN, ako cachovať odpoveď.
Tvrdé obnovenie (hard refresh)Načítanie stránky s pokynom prehliadaču, aby ignoroval svoju cache.
RedisPopulárne úložisko dát v pamäti, často používané ako cache aplikácie.

Bežné omyly

  • „Cachovanie je vždy dobré.“ Cachovanie nesprávnej veci spôsobuje skutočné chyby: staré ceny, chýbajúce nové články alebo – najhorší prípad – súkromnú stránku jedného používateľa zobrazenú inému. Cachujte premyslene.
  • „Ak vidím starú verziu, moja aktualizácia zlyhala.“ Zvyčajne nezlyhala. Skúste tvrdé obnovenie (Ctrl+Shift+R, alebo Cmd+Shift+R na Macu) alebo súkromné okno, skôr než predpokladáte, že je niečo rozbité.
  • „Cachovanie opraví pomalú aplikáciu.“ Skrýva pomalosť pri opakovaných požiadavkách. Prvá požiadavka je stále pomalá, a ak je základný problém chýbajúci index v databáze, opravte aj ten.
  • „Mal by som všetko cachovať čo najdlhšie.“ Dlhé časy cache sa hodia pre súbory, ktoré pri zmene dostanú nové názvy. Pre HTML stránky a dáta sú kratšie časy bezpečnejšie.
  • „Vyčistenie mojej cache to opraví pre všetkých.“ Vymaže len vašu cache prehliadača. Návštevníci a cache CDN majú stále svoje vlastné kópie.

Čo sa opýtať nástroja na tvorbu aplikácií

  • „Ktoré časti tejto aplikácie sú pomalé a ktoré by sa dali bezpečne cachovať?“
  • „Cachuj [zoznam populárnych / výsledok API] na [N] minút a vymaž ho, keď sa zmenia podkladové dáta.“
  • „Uisti sa, že žiadna stránka s osobnými údajmi alebo údajmi účtu nemôže byť cachovaná CDN ani zdieľanou cache.“
  • „Pre statické súbory s odtlačkom nastav dlhé časy cache a pre HTML krátke.“
  • „Cachuj odpovede z [externého API], aby sme ho nevolali pri každom načítaní stránky – a povedz mi, ako zastarané môžu byť tieto dáta.“
  • „Po publikovaní vidím starú verziu. Je to cache môjho prehliadača, alebo niečo nie je nasadené?“

Cachovanie v Mythex

Po publikovaní aktualizácie aplikácie Mythex dokumentácia upozorňuje, že cache CDN môžu krátko zaostávať, a tvrdé obnovenie verejnej URL zobrazí novú verziu – pozrite Ako publikovať. Stránka Limity hostingu tiež odporúča cachovať statické zdroje, pretože hosting, čas databázy a prenos sa platia z vášho kreditu. Všetko nad to – cachovanie výsledkov dotazov alebo odpovedí API – je niečo, čo agentovi zadáte, aby to vložil do vašej aplikácie.

Súvisiace čítanie: čo je CDN, ako zrýchliť váš web a čo je rate limiting.

Otázky

Čo je cachovanie jednoducho povedané?

Cachovanie znamená uložiť kópiu niečoho, čo bolo pomalé alebo drahé na získanie, aby sa pri ďalšej potrebe dalo podať rýchlo z uloženej kópie. Prehliadače, CDN, servery aj databázy používajú cache, aby boli aplikácie rýchlejšie a lacnejšie na prevádzku.

Prečo po aktualizácii webu stále vidím starú verziu?

Váš prehliadač alebo CDN pravdepodobne zobrazuje uloženú kópiu starých súborov. Tvrdé obnovenie (Ctrl+Shift+R v systéme Windows, Cmd+Shift+R na Macu) to zvyčajne vyrieši. Pre návštevníkov dobre navrhnuté weby dávajú aktualizovaným súborom nové názvy, aby si cache automaticky stiahla novú verziu.

Čo robí vymazanie cache?

Vymazanie cache prehliadača odstráni uložené kópie súborov a stránok, takže sa všetko pri ďalšej návšteve stiahne nanovo. Môže opraviť stránky, ktoré vyzerajú rozbité alebo zastarané, a prvé načítanie potom bude o chvíľu pomalšie.

Môže cachovanie spôsobiť problémy?

Áno. Hlavné riziko je podávanie zastaraných dát – starej ceny alebo nesprávneho stavu skladu – alebo, ešte horšie, uloženie súkromnej stránky jedného používateľa a jej zobrazenie niekomu inému. Dobré pravidlá cachovania určujú, čo sa dá cachovať, ako dlho a že osobné dáta sa nikdy necachujú v zdieľaných cache.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština 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 Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)