Přehled ukládání do mezipaměti v ASP.NET Core

Autoři: Rick Anderson a Kirk Larkin

Ukládání do mezipaměti v paměti

Ukládání dat do mezipaměti v paměti používá paměť serveru k ukládání dat uložených v mezipaměti. Tento typ ukládání do mezipaměti je vhodný pro jeden server nebo více serverů používajících spřažení relací. Spřažení relací se také označuje jako rychlé relace. Spřažení relace znamená, že požadavky z klienta se vždy směrují na stejný server ke zpracování.

Další informace najdete v tématu Mezipaměť v paměti v ASP.NET Core a řešení potíží se spřažením relací brány Aplikace Azure.

Distribuovaná mezipaměť

Použijte distribuovanou mezipaměť k ukládání dat do paměti, když je aplikace hostovaná v cloudové nebo serverové farmě. Mezipaměť se sdílí mezi servery, které zpracovávají požadavky. Klient může odeslat požadavek, který zpracovává jakýkoli server ve skupině, pokud jsou k dispozici data uložená v mezipaměti pro klienta. ASP.NET Core funguje s distribuovanými mezipaměťmi SQL Serveru, Redis a NCache .

Další informace naleznete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core.

Pomocná rutina značky mezipaměti

Obsah můžete ukládat do mezipaměti ze zobrazení MVC nebo Razor stránky pomocí pomocné rutiny značek mezipaměti. Pomocná rutina značek mezipaměti používá ukládání dat do mezipaměti.

Další informace najdete v tématu Pomocné rutiny značek mezipaměti v ASP.NET Core MVC.

Pomocná rutina značky distribuované mezipaměti

Obsah můžete ukládat do mezipaměti ze zobrazení MVC nebo Razor stránky v distribuovaných cloudových scénářích nebo ve scénářích webové farmy pomocí pomocné rutiny značek distribuované mezipaměti. Pomocník značky distribuované mezipaměti používá k ukládání dat SQL Server, Redis nebo NCache .

Další informace naleznete v nápovědě značky distribuované mezipaměti v ASP.NET Core.

Ukládání odpovědí do mezipaměti

Middleware pro ukládání odpovědí do mezipaměti:

  • Umožňuje ukládání odpovědí serveru do mezipaměti na základě hlaviček mezipaměti HTTP. Implementuje standardní sémantiku ukládání do mezipaměti HTTP. Mezipaměti založené na hlavičkách mezipaměti HTTP, jako jsou proxy servery.
  • Aplikace uživatelského rozhraní, jako Razor jsou stránky, obvykle nejsou užitečné, protože prohlížeče obvykle nastavují hlavičky požadavků, které brání ukládání do mezipaměti. Ukládání výstupu do mezipaměti, které je dostupné v ASP.NET Core 7.0 a novějších, přináší výhody aplikací uživatelského rozhraní. Při ukládání výstupu do mezipaměti se konfigurace rozhodne, co se má ukládat do mezipaměti nezávisle na hlavičkách HTTP.
  • Může být přínosné pro veřejné požadavky rozhraní GET nebo HEAD API od klientů, u kterých jsou splněny podmínky pro ukládání do mezipaměti .

Pokud chcete otestovat ukládání odpovědí do mezipaměti, použijte Fiddler nebo jiný nástroj, který může explicitně nastavit hlavičky požadavků. Pro testování ukládání do mezipaměti se explicitně upřednostňuje nastavení hlaviček. Další informace naleznete v tématu Poradce při potížích.

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

Middleware pro ukládání výstupu do mezipaměti umožňuje ukládání odpovědí HTTP do mezipaměti. Ukládání výstupu do mezipaměti se liší od ukládání odpovědí do mezipaměti následujícími způsoby:

  • Chování při ukládání do mezipaměti je možné konfigurovat na serveru.

    Chování při ukládání odpovědí do mezipaměti je definováno hlavičkami HTTP. Když například navštívíte web s Chromem nebo Edgem, prohlížeč automaticky odešle Cache-control: max-age=0 záhlaví. Tato hlavička efektivně zakáže ukládání odpovědí do mezipaměti, protože server dodržuje pokyny poskytované klientem. Pro každý požadavek se vrátí nová odpověď, i když má server novou odpověď uloženou v mezipaměti. Při ukládání výstupu do mezipaměti klient nepřepíše chování při ukládání do mezipaměti, které nakonfigurujete na serveru.

  • Médium úložiště mezipaměti je rozšiřitelné.

    Paměť se používá ve výchozím nastavení. Ukládání odpovědí do mezipaměti je omezené na paměť.

  • Vybrané položky mezipaměti můžete zneplatnit prostřednictvím kódu programu.

    Závislost ukládání odpovědí do mezipaměti na hlavičkách HTTP vám ponechá několik možností zneplatnění položek mezipaměti.

  • Uzamčení prostředků snižuje riziko razítka mezipaměti a hřmění herdy.

    Při odvolání často používané položky mezipaměti dochází k razítku mezipaměti a příliš mnoho požadavků se pokusí znovu vyplnit stejnou položku mezipaměti ve stejnou dobu. Hřmění herd je podobné: nárůst požadavků na stejnou odpověď, která ještě není v položce mezipaměti. Uzamykání prostředků zajišťuje, že všechny požadavky na danou odpověď čekají na naplnění první žádosti o naplnění mezipaměti. Ukládání odpovědí do mezipaměti nemá funkci uzamčení prostředků.

  • Opětovné obnovení mezipaměti minimalizuje využití šířky pásma.

    Obnovení mezipaměti znamená, že server může místo textu odpovědi uložené v mezipaměti vrátit stavový 304 Not Modified kód HTTP. Tento stavový kód informuje klienta, že odpověď na požadavek se nezmění od toho, co bylo dříve přijato. Ukládání odpovědí do mezipaměti neuvádí opětovné obnovení mezipaměti.

Ukládání do mezipaměti v paměti

Ukládání dat do mezipaměti v paměti používá paměť serveru k ukládání dat uložených v mezipaměti. Tento typ ukládání do mezipaměti je vhodný pro jeden server nebo více serverů používajících spřažení relací. Spřažení relací se také označuje jako rychlé relace. Spřažení relace znamená, že požadavky z klienta se vždy směrují na stejný server ke zpracování.

Další informace najdete v tématu Mezipaměť v paměti v ASP.NET Core a řešení potíží se spřažením relací brány Aplikace Azure.

Distribuovaná mezipaměť

Použijte distribuovanou mezipaměť k ukládání dat do paměti, když je aplikace hostovaná v cloudové nebo serverové farmě. Mezipaměť se sdílí mezi servery, které zpracovávají požadavky. Klient může odeslat požadavek, který zpracovává jakýkoli server ve skupině, pokud jsou k dispozici data uložená v mezipaměti pro klienta. ASP.NET Core funguje s distribuovanými mezipaměťmi SQL Serveru, Redis a NCache .

Další informace naleznete v tématu Distribuované ukládání do mezipaměti v ASP.NET Core.

Pomocná rutina značky mezipaměti

Obsah můžete ukládat do mezipaměti ze zobrazení MVC nebo Razor stránky pomocí pomocné rutiny značek mezipaměti. Pomocná rutina značek mezipaměti používá ukládání dat do mezipaměti.

Další informace najdete v tématu Pomocné rutiny značek mezipaměti v ASP.NET Core MVC.

Pomocná rutina značky distribuované mezipaměti

Obsah můžete ukládat do mezipaměti ze zobrazení MVC nebo Razor stránky v distribuovaných cloudových scénářích nebo ve scénářích webové farmy pomocí pomocné rutiny značek distribuované mezipaměti. Pomocník značky distribuované mezipaměti používá k ukládání dat SQL Server, Redis nebo NCache .

Další informace naleznete v nápovědě značky distribuované mezipaměti v ASP.NET Core.

Ukládání odpovědí do mezipaměti

Middleware pro ukládání odpovědí do mezipaměti:

  • Umožňuje ukládání odpovědí serveru do mezipaměti na základě hlaviček mezipaměti HTTP. Implementuje standardní sémantiku ukládání do mezipaměti HTTP. Mezipaměti založené na hlavičkách mezipaměti HTTP, jako jsou proxy servery.
  • Aplikace uživatelského rozhraní, jako Razor jsou stránky, obvykle nejsou užitečné, protože prohlížeče obvykle nastavují hlavičky požadavků, které brání ukládání do mezipaměti. Ukládání výstupu do mezipaměti, které je dostupné v ASP.NET Core 7.0 a novějších, přináší výhody aplikací uživatelského rozhraní. Při ukládání výstupu do mezipaměti se konfigurace rozhodne, co se má ukládat do mezipaměti nezávisle na hlavičkách HTTP.
  • Může být přínosné pro veřejné požadavky rozhraní GET nebo HEAD API od klientů, u kterých jsou splněny podmínky pro ukládání do mezipaměti .

Pokud chcete otestovat ukládání odpovědí do mezipaměti, použijte Fiddler nebo jiný nástroj, který může explicitně nastavit hlavičky požadavků. Pro testování ukládání do mezipaměti se explicitně upřednostňuje nastavení hlaviček. Další informace naleznete v tématu Poradce při potížích.

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

Ukládání výstupu do mezipaměti je dostupné v .NET 7 a novějších verzích.