Trace Id is missing
Přeskočit na hlavní obsah
Azure

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

Vývojáři a odborníci na IT používají mezipaměť pro ukládání dat klíč-hodnota a přístup k nim v dočasné paměti rychleji a s menším úsilím než k datům uloženým v běžných datových úložištích. Mezipaměti jsou užitečné v různých scénářích s různými technologiemi, jako je například počítačové ukládání do mezipaměti s využitím paměti RAM (random access memory), ukládání do mezipaměti v síti pro doručování obsahu, webová mezipaměť pro webová multimediální data nebo cloudová mezipaměť, která pomáhá zvýšit odolnost cloudových aplikací. Vývojáři často navrhují aplikace tak, aby se zpracovávaná data ukládala do mezipaměti a poté se znovu použila k rychlejšímu obsloužení požadavků než při standardních databázových dotazech.

Pomocí ukládání do mezipaměti můžete snížit náklady na databáze, zajistit vyšší propustnost a nižší latenci, než nabízí většina databází, a zvýšit výkon cloudových a webových aplikací.

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

Vývojáři mohou primární databázi doplnit o databázovou mezipaměť, kterou mohou umístit do databáze nebo aplikace, nebo ji nastavit jako samostatnou vrstvu. Zatímco při ukládání velkých, trvalých a úplných datových sad se obvykle spoléhají na konvenční databáze, mezipaměť používají k ukládání přechodných podmnožin dat pro rychlé vyhledávání.

Ukládání do mezipaměti můžete používat se všemi typy datových úložišť, včetně databází NoSQL i relačních databází, jako je SQL Server,  MySQL nebo MariaDB. Ukládání do mezipaměti také funguje s mnoha konkrétními datovými platformami, jako jsou  Azure Database for PostgreSQLAzure SQL Database nebo Azure SQL Managed Instance. Než začnete konfigurovat datovou architekturu, doporučujeme prozkoumat, jaký typ datového úložiště bude nejlépe vyhovovat vašim požadavkům. Než začnete používat PostgreSQL ke kombinaci relačních a nestrukturovaných datových úložišť, měli byste například vědět, co to PostgreSQL je.

Výhody vrstev mezipaměti a co je vlastně Redis?

Vývojáři používají víceúrovňové mezipaměti označované jako vrstvy mezipaměti k ukládání různých typů dat do samostatných mezipamětí podle potřeby. Přidáním vrstvy nebo několika vrstev mezipaměti můžete výrazně zlepšit propustnost a latenci datové vrstvy.

Redis je populární opensourcová datová struktura v paměti, která se používá k vytváření vysoce výkonných vrstev mezipaměti a dalších datových úložišť. Nedávná studie ukázala, že přidání Azure Cache for Redis do vzorové aplikace zvýšilo datovou propustnost o více než 800 % a zlepšilo latenci o více než 1 000 %1.

Mezipaměti mohou také snížit celkové náklady na vlastnictví (TCO) datové vrstvy. Použitím mezipamětí k obsluze nejčastějších dotazů a snížení zatížení databází můžete omezit potřebu nadměrného zřizování databázových instancí, což vede k výrazným úsporám nákladů a snížení celkových nákladů na vlastnictví.

Typy ukládání do mezipaměti

Strategie ukládání do mezipaměti závisí na způsobu, jakým vaše aplikace čte a zapisuje data. Má vaše aplikace vysoké nároky na zápis, nebo se data zapíšou jen jednou, ale často čtou? Jsou vracená data vždycky jedinečná? Konfiguraci mezipaměti ovlivňují různé vzory přístupu k datům. Mezi běžné typy ukládání do mezipaměti patří doplňování mezipaměti, přímé čtení / přímý zápis a opožděný zápis / zpětný zápis.

Doplňování mezipaměti

U aplikací s úlohami s vysokými nároky na čtení vývojáři často používají programovací vzor doplňování mezipaměti, nebo také „vedlejší mezipaměť“. Vyhledají vedlejší mezipaměť mimo aplikaci, která se pak může připojit k mezipaměti pro dotazování a načítání dat, nebo přímo k databázi, pokud data v mezipaměti nejsou. Při načítání aplikace zkopíruje data do mezipaměti pro budoucí dotazy.

Doplňování mezipaměti můžete použít ke zlepšení výkonu aplikací, k zajištění konzistence mezi mezipamětí a úložištěm dat a jako prevenci toho, že data v mezipaměti zastarají.

Mezipaměť s přímým čtením / přímým zápisem

Mezipaměti s přímým čtením se udržují aktuální samy, zatímco u mezipamětí s přímým zápisem aplikace zapisuje data do mezipaměti a následně do databáze. Obě mezipaměti jsou předřazené databázi a aplikace s nimi dohromady pracuje jako s hlavním úložištěm dat.

Mezipaměti s přímým čtením pomáhají zjednodušit aplikace, u kterých jsou požadována stále stejná data, ale samotná mezipaměť je složitější, přičemž dvoukrokový proces přímého zápisu může způsobovat latenci. Vývojáři pomáhají zajistit konzistenci dat mezi mezipamětí a databází jejich spárováním, aby se snížila latence mezipaměti s přímým zápisem a usnadnila aktualizace mezipaměti s přímým čtením.

Pomocí ukládání do mezipaměti s přímým čtením / přímým zápisem mohou vývojáři zjednodušit kód aplikace, zvýšit škálovatelnost mezipaměti a minimalizovat zatížení databáze.

Mezipaměť s opožděným čtením / zpětným zápisem

V tomto scénáři aplikace zapíše data do mezipaměti. Tato data jsou okamžitě potvrzena a poté mezipaměť sama zapíše data zpět do databáze na pozadí. Mezipaměti s opožděným zápisem, které se někdy označují také jako mezipaměti se zpětným zápisem, jsou nejvhodnější pro úlohy s vysokými nároky na zápis. Zvyšují výkon zápisu, protože aplikace před přechodem k další úloze nemusí čekat na jeho dokončení.

Distribuovaná mezipaměť versus úložiště relací

Lidé si často pletou distribuované mezipaměti s úložišti relací, která jsou podobná, ale mají odlišné požadavky a účely. Místo distribuované mezipaměti jako doplňku databáze vývojáři implementují úložiště relací, což jsou dočasná úložiště dat v uživatelské vrstvě, a to pro profily, zprávy a další uživatelská data v aplikacích orientovaných na relace, jako jsou webové aplikace.

Co je úložiště relací?

Aplikace orientované na relace sledují akce, které uživatelé provádějí, když jsou přihlášeni do aplikací. Pokud chcete tato data zachovat i po odhlášení uživatele, můžete je uchovávat v úložišti relací. Výsledkem je lepší správa relací, snížení nákladů a zrychlení výkonu aplikací.

V čem se liší použití úložiště relací od ukládání databáze do mezipaměti?

V úložišti relací nejsou data sdílena mezi různými uživateli, zatímco při ukládání do mezipaměti mohou různí uživatelé přistupovat ke stejné mezipaměti. Vývojáři používají mezipaměť ke zlepšení výkonu databáze nebo instance úložiště, zatímco pomocí úložišť relací zvyšují aplikační výkon tím, že data zapisují do úložiště v paměti, čímž se zcela eliminuje potřeba přístupu k databázi.

Data zapsaná do úložiště relací mají obvykle krátkou životnost, zatímco u dat uložených v mezipaměti primární databáze se očekává mnohem delší trvání. Úložiště relací vyžaduje replikaci, vysokou dostupnost a odolnost dat, aby se zajistilo, že se transakční data neztratí a uživatelé zůstanou zapojení. Pokud se na druhou stranu data v mezipaměti na straně klienta ztratí, vždycky existuje jejich kopie v trvalé databázi.

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

Zlepšení výkonu aplikací

Čtení dat z mezipaměti v paměti je mnohem rychlejší než přístup k datům z diskového úložiště dat. A díky rychlejšímu přístupu k datům se výrazně zlepšuje celkové aplikační prostředí.

Snížení využití databází a nákladů

Ukládání do mezipaměti vede k menšímu počtu databázových dotazů, zvyšuje výkon a snižuje náklady, a to díky omezení potřeby škálovat databázovou infrastrukturu a snížení poplatků za propustnost.

Předvídatelný a škálovatelný výkon

Jediná instance mezipaměti dokáže zpracovat miliony požadavků za sekundu a nabízí propustnost a škálovatelnost na takové úrovni, jaké se databáze ani nepřibližují. Ukládání do mezipaměti také nabízí potřebnou flexibilitu, ať už aplikace a datová úložiště škálujete na víc instancí, nebo jim vertikálně navyšujete kapacitu. Vaše aplikace potom může umožnit přístup ke stejným souborům mnoha uživatelům současně, aniž by se zvýšilo zatížení back-endových databází. A pokud aplikace často zaznamenává prudké nárůsty využití a vysokou propustnost, mohou mezipaměti v paměti zmírnit problémy s latencí.

K čemu se používá ukládání do mezipaměti?

Ukládání výstupu do mezipaměti

Výstupní mezipaměť pomáhá zvýšit výkon webových stránek tím, že ukládá kompletní zdrojový kód stránek (například HTML a klientské skripty), které server odesílá prohlížečům k vykreslení. Pokaždé když uživatel zobrazí stránku, server uloží výstupní kód do mezipaměti aplikace. To aplikaci umožní obsluhovat požadavky bez spuštění kódu stránek nebo komunikace s jinými servery.

Ukládání dat a databází do mezipaměti

Rychlost a propustnost databází mohou být klíčovými faktory celkového výkonu aplikace. Ukládání do mezipaměti databáze se používá pro obvyklá volání dat, která se často nemění, například údaje o cenách nebo zásobách. Pomáhá zrychlit načítání webů a aplikací a zároveň zvyšuje propustnost a snižuje latenci načítání dat z back-endových databází.

Ukládání dat uživatelských relací

Uživatelé aplikací často generují data, která je třeba uchovávat po krátkou dobu. Úložiště dat v paměti, jako je Redis, je ideální pro efektivní a spolehlivé ukládání velkých objemů dat relací, jako jsou uživatelské vstupy, položky nákupního košíku nebo předvolby přizpůsobení, a to s nižšími náklady než úložiště nebo databáze.

Architektury na principu publikování a odběru nebo zprostředkovatelů zpráv

Cloudové aplikace často potřebují vyměňovat data mezi službami a mohou využívat ukládání do mezipaměti k implementaci architektur na principu publikování a odběru nebo zprostředkovatele zpráv, které snižují latenci a zrychlují správu dat.

Aplikace a rozhraní API

Stejně jako prohlížeče ukládají aplikace důležité soubory a data, aby je v případě potřeby mohly rychle načíst. Odpovědi API uložené v mezipaměti snižují nároky na aplikační servery a databáze a jejich zatížení, což přináší rychlejší doby odezvy a vyšší výkon.

[1] Uvedené poměry cena/výkon vycházejí ze studie, kterou zadal Microsoft a kterou v říjnu 2020 zpracovala společnost GigaOm. Tato studie porovnávala výkon testovací aplikace využívající databázi Azure s implementací služby Azure Cache for Redis jako řešení pro ukládání do mezipaměti a bez její implementace. Jako databázový element byly v této studii využity služby Azure SQL Database a Azure Database for PostgreSQL. Byly instance Gen 5 Pro obecné účely se 2 virtuálními jádry služby Azure SQL Database a instance Pro obecné účely se 2 virtuálními jádry služby Azure Database for PostgreSQL s 6GB instancí P1 služby Azure Cache for Redis úrovně Premium. Tyto výsledky byly porovnány s instancemi Gen 5 Pro obecné účely s 8, 16, 24 a 32 virtuálními jádry služby Azure SQL Database a instance Pro obecné účely s 8, 16, 24 a 32 virtuálními jádry služby Azure Database for PostgreSQL bez služby Azure Cache for Redis. Benchmarková data jsou převzata z testu GigaOm Web Application Database Load Test, který simuluje běžnou webovou aplikaci a back-endovou databázi pod zvyšujícím se náporem požadavků HTTP. Skutečné výsledky se mohou lišit v závislosti na konfiguraci a oblasti. Přečtěte si kompletní studii.

Bezplatný účet

Vyzkoušejte si cloud computingové služby Azure zdarma až po dobu 30 dní.

Průběžné platby

Začněte využívat průběžné platby. Nemusíte se předem k ničemu zavázat a zrušení je možné kdykoli.

Přidejte do své aplikace pohotovou vrstvu mezipaměti s využitím plně spravované služby Redis. Zjistěte, jak začít se službou Azure Cache for Redis.

Pokud chcete provozovat flexibilní souborovou mezipaměť pro vysoce výkonné aplikace, přečtěte si o Azure HPC Cache.