caching
Obsah
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.
caching.txt · Poslední úprava: autor: admin
