Sdílet prostřednictvím


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

Ukládání dat 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 poskytoval ASP.NET v oboru názvů System.Web.Caching implementaci mezipaměti v paměti. 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ů, který obsahuje rozhraní API určená pro webové i jiné než webové aplikace.

Ukládání 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 mezipaměti objektů v paměti třídy ObjectCache. 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 je 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í aplikačních dat do mezipaměti 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 Přehled ukládání do mezipaměti.

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 najdete v tématu Návod: Ukládání dat aplikací do mezipaměti v ASP.NET.

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

Pokud chcete data aplikace ukládat do mezipaměti ručně, můžete použít třídu 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 Web.config souboru. Další informace naleznete v tématu outputCache – element pro ukládání do mezipaměti (schéma nastavení ASP.NET).

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 Podpora ukládání do mezipaměti 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 bylo rozšiřitelné. Třída ObjectCache umožňuje vytvořit vlastní implementaci mezipaměti. Tato třída poskytuje prvky, které jsou k dispozici všem spravovaným aplikacím, včetně Windows Forms, Windows Presentation Foundation (WPF) a Windows Communication 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 Caching with ASP.NET 4 (VS 2010 a .NET Framework 4.0 Series) na blogu Scotta Guthrieho.

Viz také