This is the Trace Id: e063c8e5418fa81b5d007fd27f49e8b8
Přeskočit na hlavní obsah
Azure
přechodové pozadí

Co je ukládání do mezipaměti?

Zjistěte, jak ukládání do mezipaměti zlepšuje výkon a efektivitu systému.

Význam ukládání do mezipaměti

Ukládání do mezipaměti uchovává opakovaně použitelné kopie často používaných dat v paměti, takže aplikace nemusí opakovaně volat databázi a můžou rychleji vracet výsledky.

Hlavní poznatky

  • Ukládání do mezipaměti ukládá často vyžadovaná data do rychlé paměti, aby aplikace mohly reagovat rychleji bez toho, aby pokaždé zasahovaly primární databázi.
  • Typický požadavek nejdřív zkontroluje mezipaměť. Při nenalezení dat načte data ze zdrojového úložiště a aktualizuje mezipaměť pomocí běžných vzorů čtení a zápisu.
  • Dobře navržené ukládání do mezipaměti snižuje latenci a zátěž back-endu, pomáhá zvládat nárazový provoz a podporuje běžné scénáře, jako jsou weby, rozhraní API a stav relace.
  • Ukládání do mezipaměti se objevuje v několika vrstvách a nejlépe funguje, když zvolíte stabilní data s častým čtením a zachováte trvalý zdroj pravdy se záložním plánem.

Principy ukládání do mezipaměti

Co je mezipaměť?

Ukládání do mezipaměti je ukládání dat ve formátu klíč–hodnota do dočasné paměti (například do nerelační NoSQL databáze), aby je aplikace mohly načítat rychleji než z běžného úložiště. V architekturách cloudového úložiště, kde požadavky často procházejí sítěmi a využívají sdílené služby, může ukládání do mezipaměti pomáhat udržovat nízkou dobu odezvy a omezovat opakovanou práci.

Jak funguje ukládání do mezipaměti?

Většina systémů uchovává trvalý „zdroj pravdy“ (databázi) pro kompletní datové sady a zároveň používá mezipaměť pro dočasné podmnožiny, které se často čtou. Když přijde požadavek, aplikace nejdřív zkontroluje mezipaměť. Pokud tam data jsou, rychle je vrátí bez dalšího dotazování back-endu. Vývojáři také ukládají zpracovaná data do mezipaměti a opakovaně je používají, aby požadavky obsloužili rychleji než standardní dotazy na relační databáze, SQL databáze nebo open-source databáze PostgreSQL.

Klíčové principy ukládání do mezipaměti

1. Ukládejte do mezipaměti data, která často čtete

Mezi vhodné kandidáty patří data, která se čtou opakovaně, a data, která se mění jen zřídka (například informace o produktech a cenách nebo sdílené statické prostředky, jejichž vytvoření je nákladné).

2. Ukládejte do mezipaměti výsledky opakované práce

Pokud operace transformuje data nebo provádí složitý výpočet, může uložení výsledku do mezipaměti zabránit opakovanému přepočítávání pro další požadavky.

3. V případě potřeby používejte vrstvy mezipaměti

Vývojáři používají víceúrovňové mezipaměti („vrstvy mezipaměti“) k ukládání různých typů dat do samostatných mezipamětí podle poptávky. Přidání jedné nebo více vrstev mezipaměti může zlepšit propustnost a latenci v datové vrstvě.

4. Udržujte stav relace blízko pro responzivní aplikace

Úložiště v paměti se často používají k uchovávání velkých objemů dat relací, jako jsou vstupy uživatelů, položky nákupního košíku nebo předvolby přizpůsobení, po krátkou dobu. U stavových aplikací týmy také ukládají stav relace do mezipaměti, aby aplikační vrstva mohla zůstat bezstavová.

Dopad na výkon systému

Ukládání do mezipaměti může zlepšit výkon několika konkrétními způsoby:

  • Čtení dat z mezipaměti v paměti je rychlejší než přístup k datům z úložiště založeného na disku.
  • Méně dotazů může snížit zátěž a omezit potřebu škálovat databázovou infrastrukturu, což může také snížit náklady.
  • Vrstvy mezipaměti můžou zlepšit propustnost a latenci a mezipaměti v paměti můžou pomáhat zmírnit latenci během špiček využití.
  • Instance mezipaměti zvládne miliony požadavků za sekundu a nabízí propustnost, které se mnoho databází nevyrovná.

Jak funguje ukládání do mezipaměti?

Základní tok: Mezipaměť a zdrojové úložiště dat

V mnoha návrzích cloudu se mezipaměť nachází vedle primárního úložiště dat (například databáze). Primární úložiště uchovává kompletní trvalou datovou sadu na cloudovém serveru, zatímco mezipaměť uchovává menší dočasnou podmnožinu, kterou je rychlejší číst.

Běžným nastavením je samostatná vrstva mezipaměti nebo mezipaměť v aplikační či databázové vrstvě, zvolená podle toho, kde potřebujete rychlé čtení.

Vrstvy mezipaměti: Více než jedna „rychlá cesta“

Některé systémy používají víceúrovňové ukládání do mezipaměti („vrstvy mezipaměti“), aby různé druhy dat byly v různých mezipamětech podle poptávky. Přidání jedné nebo více vrstev mezipaměti může zlepšit propustnost a latenci datové vrstvy a snížit celkové náklady omezením zátěže back-endu.

Co se ukládá do mezipaměti (a proč)

Týmy obvykle ukládají do mezipaměti data, která spadají do několika kategorií:

  • Často čtená data (zejména pokud se mění jen zřídka), například informace o produktech nebo cenách a sdílené statické prostředky, jejichž vytvoření je nákladné.
  • Opakované výpočty, kdy operace transformuje data nebo provádí složitý výpočet. Uložení výsledku do mezipaměti zabrání tomu, aby se pro pozdější požadavky prováděla stejná práce znovu.
  • Stav relace pro stavové aplikace, kde uložení stavu relace do mezipaměti může pomoct udržet aplikační vrstvu bezstavovou.

Běžné vzory ukládání do mezipaměti (pracovní postupy čtení a zápisu)

Aplikace čtou z mezipaměti a zapisují do ní několika standardními způsoby. Tady jsou nejběžnější vzory a jejich praktický význam.

  • Cache-aside: Načítá data z úložiště dat na vyžádání.
  • Read-through: Čte z mezipaměti a mezipaměť v případě potřeby načítá data z úložiště dat.
  • Write-through: Zapisuje do mezipaměti a ta se synchronně znovu synchronizuje s úložištěm dat.
  • Write-back (write-behind): Zapisuje do mezipaměti a ta zapisuje zpět do úložiště dat v dávkách.
  • Write-around: Zapisuje do úložiště dat a čte z mezipaměti. Mezipaměť se aktualizuje na vyžádání.

Proč to snižuje zátěž a zrychluje zpracování

Použití vrstev mezipaměti může zlepšit propustnost a latenci tím, že běžné požadavky obslouží z mezipaměti namísto opakovaného dotazování back-endového úložiště. To může snížit potřebu škálovat databázovou infrastrukturu, protože do databáze se už od začátku dostane méně požadavků.

U aplikací s nárazovým využitím můžou mezipaměti v paměti pomáhat zmírnit latenci tím, že často vyžadovaná data uchovávají blízko místa použití.

Rychlý průvodce: Výběr vzoru

Při výběru pracovního postupu použijte tyto možnosti jako výchozí bod:

  • Zvolte cache-aside, když aplikace může rozhodovat, co uložit a kdy to aktualizovat.
  • Zvolte read-through, když chcete, aby mezipaměť podle potřeby zajišťovala načítání z úložiště dat.
  • Zvažte write-through nebo write-back, když záleží na chování zápisu a chcete definovaný způsob opětovné synchronizace.

Výhody a použití ukládání do mezipaměti

Rychlejší odezvy s menší prací back-endu

Ukládání do mezipaměti zlepšuje výkon aplikací, protože čtení z mezipaměti v paměti je rychlejší než čtení z datového úložiště založeného na disku. Když se z mezipaměti obslouží více požadavků, systémy posílají méně dotazů do back-endových databází, což může snížit potřebu škálovat databázovou infrastrukturu a omezit související náklady.

Co ukládání do mezipaměti často přináší
  • Nižší latenci při běžném čtení, protože často vyžadovaná data pocházejí z rychlejší vrstvy.
  • Nižší zátěž a náklady na databázi, protože ukládání do mezipaměti vede k menšímu počtu databázových dotazů a menšímu tlaku na nadměrné dimenzování databázových instancí.
  • Předvídatelnější propustnost, protože mezipaměť zvládne ve srovnání s mnoha databázemi velmi vysoký objem požadavků.
  • Plynulejší zvládání špiček provozu, protože mezipaměti v paměti můžou zmírňovat latenci během období vysoké propustnosti.

Lepší využití výpočetních prostředků a úložiště

Ukládání do mezipaměti pomáhá omezit opakovanou práci. Data, která se čtou opakovaně nebo jejichž vytvoření je nákladné, se dají uložit jednou a opakovaně použít. Pokud operace provádí složitý výpočet nebo transformuje data, uložení výsledku do mezipaměti sníží opakované výpočty pro následné požadavky.

Běžní kandidáti na „dobrou mezipaměť“
  • Data, která se mění jen zřídka (například informace o produktech a cenách).
  • Sdílené statické prostředky, jejichž vytvoření je nákladné.
  • Výsledky operací, které se počítají opakovaně.

Reálné aplikace (kde se ukládání do mezipaměti používá)

Weby: Rychlejší načítání stránek a méně cest tam a zpět

Mnoho webů ukládá výstup stránky (například HTML a klientské skripty) do mezipaměti, aby server mohl vrátit uložený výstup místo opakovaného spouštění kódu stránky při každém požadavku. Ukládání do mezipaměti podporuje také webové multimediální scénáře prostřednictvím webových mezipamětí a síťového ukládání do mezipaměti, například sítí pro doručování obsahu (CDN).

Typické použití na webech
  • Ukládání celého výstupu stránky do mezipaměti pro opakovaná zobrazení.
  • Ukládání statických prostředků do mezipaměti prostřednictvím sítě nebo CDN.
Aplikace a rozhraní API: Rychlejší čtení sdílených dat

Aplikace často ukládají do mezipaměti dočasné podmnožiny dat pro rychlé načítání, zatímco primární databáze uchovává kompletní trvalou datovou sadu. Ukládání zpracovaných dat do mezipaměti a jejich opakované použití může obsloužit požadavky rychleji než standardní databázové dotazy.

Běžné vzory aplikací
  • Ukládejte do mezipaměti často čtená referenční data (například ceny), abyste omezili opakovaná volání databáze.
  • Ukládejte vypočtené výsledky do mezipaměti, abyste neopakovali nákladnou práci.
Servery a služby: Škálování čtení a vyhlazování špiček

Týmy často přidávají jednu nebo více vrstev mezipaměti, aby zlepšily propustnost a latenci, obsluhovaly běžné dotazy z mezipaměti a snížily zátěž databáze. Mezipaměti v paměti můžou pomáhat při špičkách využití a rostoucích požadavcích na propustnost tím, že v těchto obdobích zmírňují latenci.

Kde to pomáhá nejvíc
  • Koncové body s vysokým podílem čtení, kde se často vyžadují stejné klíče.
  • Systémy, které mají pravidelné nárazy provozu.
Podnikové systémy: Stav relace a sdílená provozní data

Ukládání do mezipaměti se často používá k uchovávání velkých objemů krátkodobých dat relací (například vstupů uživatelů nebo předvoleb přizpůsobení) v úložišti v paměti. Některé týmy také ukládají stav relace do mezipaměti, aby stavové aplikace mohly udržet aplikační vrstvu bezstavovou. V provozních systémech jsou data, která se mění jen zřídka, například informace o produktech a cenách, běžným cílem ukládání do mezipaměti.

Příklady, které můžete mapovat na podnikové úlohy
  • Data relací pro webové a mobilní aplikace (krátkodobá, ve velkém objemu).
  • Často čtená provozní referenční data (ceny, sdílené prostředky).

Typy mezipaměti

Ukládání do mezipaměti se objevuje v několika vrstvách mezi aplikací a jejími daty, včetně klientských a serverových přístupů.

Mezipaměť prohlížeče (na straně klienta)

Mezipaměť prohlížeče ukládá kopie statických prostředků na zařízení uživatele, aby se tyto soubory při opakovaných návštěvách mohly znovu použít místo opětovného stahování.

Případy běžného použití
  • Statické prostředky webu, jako jsou obrázky, soubory CSS a soubory JavaScript.
  • Omezení cest tam a zpět k původnímu serveru pro dříve načtené prostředky.

Mezipaměť na straně serveru

Ukládání do mezipaměti na straně serveru probíhá v procesech, které vzdáleně spouštějí podnikové služby, nikoli na zařízení koncového uživatele. Serverové mezipaměti jsou často buď privátní (místní pro jednu instanci aplikace), nebo sdílené (používané mnoha instancemi aplikace).

Případy běžného použití
  • Privátní mezipaměť v paměti uvnitř jednoho procesu pro menší objemy statických dat.
  • Sdílená služba mezipaměti, aby více instancí aplikace četlo stejné uložené hodnoty a vyhnulo se „různým verzím“ mezi instancemi.
  • Data, která se často čtou, ale upravují jen zřídka (například referenční data o produktech a cenách).

Mezipaměť CDN

CDN ukládá obsah do mezipaměti na hraničních serverech blíž koncovým uživatelům, takže požadavky nemusí vždy putovat zpět k původnímu serveru. Na rozdíl od mezipaměti prohlížeče (jeden uživatel) je mezipaměť CDN sdílená. Požadavek jednoho uživatele může naplnit obsah, který později dostane jiný uživatel.

Případy běžného použití
  • Sdílené doručování obsahu vhodného pro ukládání do mezipaměti z hraničních lokalit, aby se omezily požadavky na původní server.
  • Statické prostředky, kterým prospívá doručování blízko uživatelům (stejné typy prostředků, které prohlížeče ukládají do mezipaměti, ale sdílené mezi uživateli).

Mezipaměť procesoru/paměti

Ukládání do mezipaměti není jen vzor cloud computingu. Používají ho také hardwarové a paměťové vrstvy.

Mezipaměť procesoru je malá rychlá oblast paměti poblíž procesoru (nebo přímo v něm), která ukládá kopie často používaných dat a instrukcí, aby se zkrátil čas čekání na hlavní paměť.

Paměťová mezipaměť (in-memory) je nejjednodušší typ softwarové mezipaměti: úložiště v paměti uchovávané v adresovém prostoru jednoho procesu a přístupné přímo tímto procesem.

Případy běžného použití
  • Mezipaměť procesoru: Opakovaný přístup ke stejným instrukcím nebo datům bez častých cest do hlavní paměti.
  • Mezipaměť v paměti: Rychlé čtení menších objemů relativně statických dat uvnitř jedné spuštěné služby.

Distribuované ukládání do mezipaměti

Distribuovaná mezipaměť se rozprostírá přes více serverů, aby se mohla rozšiřovat kapacita mezipaměti i transakční kapacita nad rámec jednoho počítače. Mnoho sdílených služeb mezipaměti používá cluster serverů a rozděluje data uložená v mezipaměti napříč clusterem. Škálování mezipaměti pak může být tak jednoduché jako přidání dalších serverů. Některé distribuované návrhy také vrství mezipaměti tak, že nenalezení dat v jedné vrstvě vyvolá načtení od nadřazeného poskytovatele a následné místní uložení výsledku pro další požadavek.

Případy běžného použití
  • Sdílená vrstva mezipaměti pro více instancí aplikací a počítačů.
  • Úlohy, které potřebují kapacitu a propustnost mezipaměti přesahující jeden hostitel.
  • Vrstvená nastavení mezipaměti, kde nenalezení dat načte data od nadřazeného zdroje a potom uloží místní kopii pro další požadavky.

Začínáme s ukládáním do mezipaměti

Proč je ukládání do mezipaměti stále důležité

Ukládání do mezipaměti udržuje často používaná data blíž místu jejich použití, což může zlepšit dobu odezvy a pomoct systému zvládnout více souběžných požadavků. Může také snížit soupeření o prostředky v původním úložišti dat, například když má databáze omezený počet připojení.

V distribuovaných aplikacích se ukládání do mezipaměti často odehrává na více místech: na straně klienta (například v prohlížeči) i na straně serveru (v aplikaci nebo sdílené službě mezipaměti).

Praktický způsob, jak začít

Začněte v malém rozsahu a zaměřte se na data, která vám přinesou nejjasnější návratnost:

  • Ukládejte do mezipaměti data s vysokým podílem čtení, pomalým načítáním a řídkými změnami (například referenční data).
  • Rozhodněte, kdy data vstoupí do mezipaměti:
    • Na vyžádání po prvním požadavku, abyste ukládali jen to, co se skutečně používá.
    • Při spuštění předem naplňte (seedujte) některé položky, pokud víte, že budou brzy vyžádány, a zároveň sledujte zátěž původního úložiště při spuštění.
  • Vyberte si vzor, který zvládnete spravovat. Vzor cache-aside je běžný a jeho pokyny zdůrazňují, jak vypršení platnosti, vyřazování a konzistence ovlivňují výsledky.

Udržujte data v mezipaměti aktuální (a systém odolný)

Mezipaměť obvykle uchovává kopie dat z primárního úložiště, takže je potřeba věnovat pozornost aktuálnosti:

  • Pomocí zásad vypršení platnosti omezte, jak dlouho můžou data zůstat v mezipaměti, než se aktualizují.
  • Sledujte chování při vyřazování, když se mezipaměti zaplní (mnoho systémů ve výchozím nastavení vyřazuje nejméně nedávno použité položky).
  • Nepovažujte mezipaměť za jediné místo pro kritická data. Udržujte zdroj pravdy v trvalém úložišti, aby systém mohl pokračovat, i když mezipaměť nebude dostupná.
  • Naplánujte záložní cestu k původnímu úložišti dat pro případ, že se mezipaměti nepůjde dovolat, a znovu ji naplňujte při čtení.

Ukládání do mezipaměti je základním stavebním blokem moderních systémů, protože se hodí do mnoha architektur, od jednotlivých služeb přes distribuované aplikace až po doručování na okraji sítě. U spravované mezipaměti v paměti od poskytovatele cloudu můžete vyzkoušet Azure.

přechodové pozadí
Zdroje informací

Zdroje informací

Školení
Zdroje informací o Azure
Prozkoumejte nejnovější vývojářské technologie a naučte se nové dovednosti.
Vzdělávání
Studijní materiály pro vývojáře
Získejte dovednosti, které podpoří vaši kariéru a umožní vám pozitivně ovlivňovat svět.
Události
Události a webináře k Azure
Naučte se novým dovednostem, objevte nové technologie a komunikujte s vaší komunitou – zúčastnit se můžete digitálně nebo osobně.
Časté otázky

Časté otázky

  • Ukládání do mezipaměti uchovává často používaná data v rychlé paměti, takže aplikace můžou rychle vracet výsledky bez toho, aby pokaždé zasahovaly primární databázi. Tím se snižuje latence a zátěž back-endu, což systémům pomáhá zvládat více souběžných požadavků.
  • Ukládání do mezipaměti zlepšuje výkon tím, že často vyžadovaná data obsluhuje z rychlé paměti. Tím snižuje latenci, zátěž a náklady databáze, podporuje vysoký objem požadavků a pomáhá při špičkách provozu.
  • Jedním příkladem je ukládání výstupu do mezipaměti: webový server uloží vykreslený výstup stránky (HTML a klientské skripty) do paměti a při opakovaných návštěvách obslouží tento uložený výstup místo opětovného spouštění kódu stránky.
  • Mezipaměť uchovává menší dočasnou podmnožinu dat pro rychlý přístup, zatímco databáze nebo úložiště uchovává kompletní trvalou datovou sadu pro dlouhodobé uchování. Pokud se data v mezipaměti ztratí, trvalá kopie zůstává v databázi. Mezipaměti nemají být autoritativním úložištěm kritických dat.