Ukládání do vyrovnávací paměti v aplikacích .NET Framework

Ukládání do mezipaměti umožňuje ukládat data do paměti pro rychlý přístup. Po opětovném přístupu k datům mohou aplikace získat data z mezipaměti místo toho, aby je načítá z původního zdroje. To může zlepšit výkon a škálovatelnost. Ukládání do mezipaměti navíc zpřístupňuje data, když je zdroj dat dočasně nedostupný.

Rozhraní .NET Framework poskytuje funkce ukládání do mezipaměti, které můžete použít ke zlepšení výkonu a škálovatelnosti klientských i serverových aplikací systému Windows, včetně ASP.NET.

Poznámka:

V rozhraní .NET Framework 3.5 a starších verzích ASP.NET poskytl implementaci mezipaměti v paměti v System.Web.Caching oboru názvů. V předchozích verzích rozhraní .NET Framework bylo ukládání do mezipaměti k dispozici pouze v System.Web oboru názvů, a proto vyžadovalo závislost na ASP.NET třídách. V rozhraní .NET Framework 4 System.Runtime.Caching obsahuje obor názvů rozhraní API určená pro webové i jiné webové aplikace.

Ukládaní dat do mezipaměti

Informace můžete ukládat do mezipaměti pomocí tříd v System.Runtime.Caching oboru názvů. Třídy ukládání do mezipaměti v tomto oboru názvů poskytují následující funkce:

  • Abstraktní typy, které poskytují základ pro vytváření vlastních implementací mezipaměti.

  • Konkrétní implementace mezipaměti objektů v paměti.

Abstraktní základní třída ukládání do mezipaměti (ObjectCache) definuje následující úlohy ukládání do mezipaměti:

  • Vytváření a správa položek mezipaměti

  • Zadání informací o vypršení platnosti a vyřazení

  • Aktivace událostí, které jsou vyvolány v reakci na změny v položkách mezipaměti.

Třída MemoryCache je implementace ObjectCache mezipaměti objektů v paměti třídy. Třídu můžete použít MemoryCache pro většinu úloh ukládání do mezipaměti.

Poznámka:

Třída MemoryCache je modelována na objektu mezipaměti ASP.NET, který je definován v System.Web.Caching oboru názvů. Proto interní logika ukládání do mezipaměti podobná logice, která byla poskytována v dřívějších verzích ASP.NET.

Příklad použití ukládání do mezipaměti v aplikaci WPF naleznete v tématu Návod: Ukládání do mezipaměti aplikační data v aplikaci WPF.

Ukládání do mezipaměti v aplikacích ASP.NET

Třídy ukládání do mezipaměti v System.Runtime.Caching oboru názvů poskytují funkce pro ukládání dat do mezipaměti v ASP.NET.

Poznámka:

Pokud vaše aplikace cílí na rozhraní .NET Framework 3.5 nebo starší, musíte použít třídy ukládání do mezipaměti, které jsou definovány v System.Web.Caching oboru názvů. Další informace najdete v tématu ASP.NET Ukládání do mezipaměti Přehled.

Poznámka:

Při vývoji nových aplikací doporučujeme používat MemoryCache třídu. Rozhraní API, které je součástí System.Runtime.Caching oboru názvů, je podobné rozhraní API, které je součástí Cache oboru názvů. Proto rozhraní API bude známé, pokud jste použili ukládání do mezipaměti ve starších verzích ASP.NET. Příklad použití ukládání do mezipaměti v aplikacích ASP.NET naleznete v části Návod: Ukládání do mezipaměti data aplikací v ASP.NET.

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

Pokud chcete data aplikace ukládat do mezipaměti ručně, můžete ji použít MemoryCache v ASP.NET. ASP.NET také podporuje ukládání výstupu do mezipaměti, ve kterém se ukládá vygenerovaný výstup stránek, ovládacích prvků a odpovědí HTTP do paměti. Ukládání výstupu do mezipaměti můžete nakonfigurovat deklarativním způsobem na webové stránce ASP.NET nebo pomocí nastavení v souboru Web.config. Další informace najdete v tématu outputCache – element pro ukládání do mezipaměti (ASP.NET Nastavení schéma).

ASP.NET umožňuje rozšířit ukládání výstupu do mezipaměti vytvořením vlastních poskytovatelů výstupní mezipaměti. Pomocí vlastních poskytovatelů můžete obsah uložený v mezipaměti ukládat pomocí jiných úložných zařízení, jako jsou disky, cloudové úložiště a moduly distribuované mezipaměti. Pokud chcete vytvořit vlastního zprostředkovatele výstupní mezipaměti, vytvoříte třídu odvozenou od OutputCacheProvider třídy a nakonfigurujete aplikaci tak, aby používala vlastního poskytovatele výstupní mezipaměti.

Ukládání do mezipaměti ve službách REST WCF

Pro služby WCF REST umožňuje rozhraní .NET Framework využívat deklarativní ukládání výstupu do mezipaměti, které je k dispozici v ASP.NET. To umožňuje ukládat odpovědi z operací služby REST WCF do mezipaměti. Když uživatel odešle požadavek HTTP GET do služby, která je nakonfigurovaná pro ukládání do mezipaměti, ASP.NET odešle zpět odpověď uloženou v mezipaměti a metoda služby se nevolá. Po vypršení platnosti mezipaměti se při příštím odeslání požadavku HTTP GET volá vaše metoda služby a odpověď se znovu ukládá do mezipaměti.

Rozhraní .NET Framework také umožňuje implementovat podmíněné ukládání do mezipaměti HTTP GET. Ve scénářích REST se podmíněný požadavek HTTP GET často používá ke implementaci inteligentního ukládání do mezipaměti HTTP, jak je popsáno ve specifikaci PROTOKOLU HTTP. Další informace naleznete v tématu Ukládání do mezipaměti Podpora webových služeb HTTP WCF.

Rozšíření Ukládání do mezipaměti v rozhraní .NET Framework

Ukládání do mezipaměti v rozhraní .NET Framework je navržený tak, aby byl rozšiřitelný. Třída ObjectCache umožňuje vytvořit vlastní implementaci mezipaměti. Tato třída poskytuje členy, které jsou k dispozici pro všechny spravované aplikace, včetně model Windows Forms, Windows Presentation Foundation (WPF) a Windows Communications Foundation (WCF). Můžete to udělat, abyste vytvořili třídu mezipaměti, která používá jiný mechanismus úložiště, nebo pokud chcete podrobnou kontrolu nad operacemi mezipaměti.

Pokud chcete rozšířit ukládání do mezipaměti, můžete udělat toto:

Další informace najdete v příspěvku Extensible Output Ukládání do mezipaměti s ASP.NET 4 (VS 2010 a .NET Framework 4.0 Series) na blogu Scotta Guthrieho.

Viz také