====== Cache (Vyrovnávací paměť) ====== **Cache** je klíčovou technologií v architektuře počítačů a sítí. Jejím hlavním účelem je řešit rozdíly v rychlosti mezi různými komponentami systému. Místo toho, aby se data pokaždé znovu generovala nebo stahovala z pomalého zdroje, systém se nejprve podívá do cache, zda tam již nejsou uložena. Pokud jsou data v cache nalezena, mluvíme o **Cache Hit** (úspěšný zásah). Pokud ne, mluvíme o **Cache Miss** (minutí), data se musí načíst z originálního zdroje a následně se do cache uloží pro příští použití. ---- ====== Úrovně cache v počítači ====== V moderním počítači existuje hierarchie cache pamětí, které jsou odstupňovány podle rychlosti a kapacity: * **L1 Cache:** Integrovaná přímo v jádře procesoru. Je nejrychlejší, ale má nejmenší kapacitu (desítky KB). * **L2 Cache:** Větší než L1, obvykle sdílená mezi jádry nebo dedikovaná pro jedno jádro. * **L3 Cache:** Největší a nejpomalejší z procesorových cache, sdílená mezi všemi jádry procesoru. * **Disk Cache:** Část operační paměti (RAM), kterou si operační systém vyhradí pro ukládání často používaných dat z pevného disku. ---- ====== Cache v kontextu webu a internetu ====== Pro koncové uživatele je nejviditelnější využití cache v síťové komunikaci: ===== 1. Browser Cache (Prohlížečová cache) ===== [[browser|Webový prohlížeč]] ukládá na disk vašeho počítače obrázky, soubory [[css|CSS]] a [[javascript|JavaScript]] z navštívených stránek. Při další návštěvě stejného webu se tyto prvky nenačítají z internetu, ale z lokálního disku, což zrychluje zobrazení stránky a šetří data. ===== 2. Server Side Cache ===== Webové servery ukládají výsledky složitých databázových dotazů nebo celé vygenerované [[html|HTML]] stránky, aby je nemusely pro každého návštěvníka znovu počítat. ===== 3. CDN (Content Delivery Network) ===== Globální síť serverů, které fungují jako obří cache pro internet. Kopie dat (např. video na Netflixu) jsou uloženy na serverech fyzicky blíže k uživateli (např. v Praze místo v Kalifornii), což snižuje [[latence|latenci]]. ---- ====== Hlavní výhody a nevýhody ====== ^ Vlastnost ^ Popis ^ | **Rychlost** | Dramatické zrychlení odezvy aplikací a webových stránek. | | **Úspora zdrojů** | Snižuje zátěž procesoru, pevných disků i šířky internetového pásma. | | **Dostupnost** | Umožňuje prohlížení některých dat v režimu offline. | | **Neaktuálnost** | Hlavní nevýhoda: data v cache mohou být stará (neodpovídají aktuálnímu stavu na serveru). | | **Soukromí** | Cache může obsahovat citlivé údaje z navštívených stránek, k nimž by mohl získat přístup jiný uživatel počítače. | ---- ====== Invalidace cache (Čištění) ====== Největším problémem při práci s cache je vědět, kdy data smazat a nahradit je novými. Tento proces se nazývá **Invalidace**. * **TTL (Time to Live):** Datům je přiřazena životnost (např. 1 hodina), po které jsou považována za neplatná. * **Ruční smazání:** Uživatelé prohlížečů často řeší problémy s nefunkčním webem "promazáním cache", čímž vynutí stažení nejnovějších verzí souborů. ---- //Související pojmy: RAM, CPU, Latence, CDN, Browser, HTTP, Cookie, SSD.//