ukládání do mezipaměti (často jednoduše označované jako ukládání do mezipaměti) je technika, při které počítačové aplikace dočasně ukládají data do hlavní paměti počítače (tj. Paměť RAM, která se používá pro dočasné úložiště, se nazývá mezipaměť. Protože přístup k paměti RAM je výrazně rychlejší než přístup k jiným médiím, jako jsou pevné disky nebo sítě, ukládání do mezipaměti pomáhá aplikacím běžet rychleji díky rychlejšímu přístupu k datům. Ukládání do mezipaměti je zvláště efektivní, když aplikace vykazuje společný vzor, ve kterém opakovaně přistupuje k datům, která byla dříve přístupná. Ukládání do mezipaměti je také užitečné pro ukládání výpočtů dat, které jsou jinak časově náročné na výpočet. Uložením výpočtů do mezipaměti systém šetří čas tím, že se vyhne opakování výpočtu.
jak funguje ukládání do mezipaměti?
ukládání do mezipaměti funguje tak, že nejprve odložíte část paměti RAM, která má být použita jako mezipaměť. Když se aplikace pokouší číst data, obvykle ze systému pro ukládání dat, jako je databáze, zkontroluje, zda požadovaný záznam již existuje v mezipaměti. Pokud ano, aplikace přečte data z mezipaměti, čímž eliminuje pomalejší přístup k databázi. Pokud požadovaný záznam není v mezipaměti, aplikace přečte záznam ze zdroje. Když načte tato data, zapíše také data do mezipaměti, takže když aplikace v budoucnu potřebuje stejná data, může je rychle získat z mezipaměti.
vzhledem k tomu, že mezipaměť je omezena velikostí, nakonec budou muset být některá data již v mezipaměti odstraněna, aby se vytvořil prostor pro nová data, ke kterým aplikace naposledy přistupovala. To znamená, že systém ukládání do mezipaměti potřebuje strategii, na které záznamy odstranit, aby se vytvořil prostor. Strategie bude záviset na povaze přístupu k datům aplikace a obecně se pokusí odstranit záznamy, u kterých se neočekává, že budou brzy znovu přístupné. Například nejméně nedávno použitá strategie (LRU) odstraní záznam, jehož poslední přístup byl před jakýmkoli jiným záznamem v mezipaměti. Předpokládá se zde, že pokud to bylo dlouho, co byl záznam zpřístupněn, pravděpodobně nebude brzy znovu přístupný. Nebo jinak řečeno, záznamy, které byly v poslední době nejpoužívanější, budou pravděpodobně brzy znovu použity. Nejméně často používaná strategie (LFU) zahrnuje sledování počtu přístupů každého záznamu v mezipaměti a odstranění záznamu s nejmenším počtem přístupů. Předpokládá se, že zřídka používaný záznam nebude pravděpodobně brzy znovu použit.
výzvou s Cache je, jak minimalizovat „cache misses“, tj., pokus o čtení aplikací pro záznamy, které nejsou v mezipaměti. Pokud máte příliš mnoho chyb, účinnost mezipaměti se snižuje. Aplikace, která čte pouze nová data, by neměla prospěch z mezipaměti a ve skutečnosti by vykazovala nižší výkon kvůli další práci při kontrole mezipaměti, ale v ní nenalezla požadovaný záznam. Jedním ze způsobů, jak lze tuto výzvu zmírnit, je využití větších mezipaměti. To často není praktické na jednom počítači, a proto jsou distribuované mezipaměti populární volbou pro urychlení aplikací, které potřebují přístup k větším souborům dat. Distribuovaná mezipaměť sdružuje RAM více počítačů připojených v clusteru, takže můžete vytvořit větší mezipaměť, která může dále růst přidáním více počítačů do clusteru. Technologie jako Hazelcast IMDG lze použít jako distribuovaný klastr k urychlení rozsáhlých aplikací.
další výzvou mezipaměti je riziko čtení“ zastaralých “ dat, ve kterých data v mezipaměti neodrážejí nejnovější data v podkladovém zdroji. Často je toto riziko přijatelným kompromisem z důvodu výkonu aplikace. V případech, kdy tomu tak není, je na aplikaci, která aktualizuje základní zdroj dat, aby aktualizovala příslušný záznam v mezipaměti.
příklady použití případy
jeden široký případ použití pro ukládání do mezipaměti paměti je urychlit databázové aplikace, zejména ty, které provádějí mnoho čtení databáze. Nahrazením části čtení databáze čtením z mezipaměti mohou aplikace odstranit latenci, která vyplývá z častých přístupů k databázi. Tento případ použití se obvykle nachází v prostředích, kde je vidět velký objem přístupů k datům, jako na webu s vysokým provozem, který obsahuje dynamický obsah z databáze.
další případ použití zahrnuje zrychlení dotazu, ve kterém jsou výsledky komplexního dotazu do databáze uloženy v mezipaměti. Komplexní dotazy spuštěné operace, jako je seskupení a pořadí, mohou trvat značné množství času. Pokud jsou dotazy spouštěny opakovaně, jako je tomu v řídicím panelu business intelligence (BI), ke kterému přistupuje mnoho uživatelů, ukládání výsledků do mezipaměti by umožnilo větší odezvu v těchto řídicích panelech.
Související Témata
Jcache / Java Cache
Cache Miss
Hibernace Mezipaměť Druhé Úrovně
Další Čtení
Caching Use Case
Databáze Caching
Hazelcast Cloud
Caching Made Bootiful: Spring Cache + Hazelcast