====== Caching (Kešování) ====== **Caching** řeší jeden z největších problémů výpočetní techniky – rozdíl v rychlosti mezi různými typy úložišť. Zatímco procesor (CPU) pracuje extrémně rychle, čtení z pevného disku nebo databáze přes síť je v porovnání s ním velmi pomalé. ===== 1. Jak funguje proces kešování? ===== Když systém potřebuje data: 1. **Cache Hit (Zásah):** Podívá se do mezipaměti. Pokud tam data jsou, okamžitě je použije. 2. **Cache Miss (Minutí):** Pokud data v mezipaměti nejsou, musí je načíst z pomalého zdroje (databáze, disk), doručit uživateli a zároveň je **uložit do cache** pro příště. ===== 2. Typy kešování v IT architektuře ===== Kešování probíhá na mnoha úrovních současně: ^ Úroveň ^ Popis ^ Příklad ^ | **HW Cache** | Přímo v procesoru (L1, L2, L3). | Urychluje přístup k instrukcím CPU. | | **Web Cache** | V prohlížeči uživatele. | Obrázky a CSS se nestahují při každém kliknutí. | | **CDN** | Rozmístěno po celém světě. | Film z Netflixu se streamuje ze serveru v Praze, ne z USA. | | **Database Cache** | V operační paměti RAM. | Výsledky častých SQL dotazů (např. Redis, Memcached). | | **DNS Cache** | V operačním systému. | Pamatuje si IP adresu webu, aby se nemusel ptát DNS serveru. | ===== 3. Strategie obnovy (Cache Invalidation) ===== Největší výzvou kešování je zajistit, aby data nebyla zastaralá (stale data). Existují různé strategie: * **TTL (Time to Live):** Datům se nastaví "doba trvanlivosti" (např. 1 hodina). Po jejím uplynutí se smažou. * **Write-through:** Data se zapisují současně do cache i do hlavní databáze. * **Write-back:** Data se zapíšou nejdřív do rychlé cache a do pomalé databáze se uloží až později (riziko ztráty při výpadku). * **LRU (Least Recently Used):** Když je cache plná, vymaže se to, co se nejdéle nepoužívalo. ===== 4. Proč kešovat? ===== * **Rychlost:** Dramaticky zkracuje dobu odezvy aplikace. * **Šetření nákladů:** Snižuje zátěž na databázové servery, což umožňuje provozovat web na levnějším hardwaru. * **Dostupnost:** V případě krátkého výpadku databáze může web stále fungovat díky datům uloženým v keši. ===== 5. Úskalí: "Dva nejtěžší problémy" ===== V IT koluje slavný vtip: //"V informatice existují jen dva těžké problémy: invalidace cache, pojmenovávání věcí a chyby o jedničku (off-by-one errors)."// Pokud zapomenete vymazat keš po aktualizaci ceny produktu, uživatelé uvidí starou cenu, i když v databázi je už nová. > **Tip:** Při vývoji webu můžete vynutit načtení dat bez mezipaměti prohlížeče stisknutím klávesové zkratky **Ctrl + F5**. [[it_encyklopedie:it_architektura_rozcestnik|Zpět na Rozcestník]]