Dela via


Cachelagring i .NET Framework-program

Cachelagring gör att du kan lagra data i minnet för snabb åtkomst. När data används igen kan program hämta data från cacheminnet i stället för att hämta dem från den ursprungliga källan. Detta kan förbättra prestanda och skalbarhet. Dessutom gör cachelagring data tillgängliga när datakällan är tillfälligt otillgänglig.

.NET Framework tillhandahåller cachelagringsfunktioner som du kan använda för att förbättra prestanda och skalbarhet för både Windows-klient- och serverprogram, inklusive ASP.NET.

Kommentar

I .NET Framework 3.5 och tidigare versioner tillhandahöll ASP.NET en cacheimplementering i minnet i System.Web.Caching namnområdet. I tidigare versioner av .NET Framework var cachelagring endast tillgängligt i System.Web namnområdet och krävde därför ett beroende av ASP.NET klasser. I .NET Framework 4 System.Runtime.Caching innehåller namnområdet API:er som är utformade för både webb- och icke-webbprogram.

Cachelagring data

Du kan cachelagrat information med hjälp av klasser i System.Runtime.Caching namnområdet. Cachelagringsklasserna i det här namnområdet innehåller följande funktioner:

  • Abstrakta typer som utgör grunden för att skapa anpassade cacheimplementeringar.

  • En konkret cacheimplementering av minnesinternt objekt.

Den abstrakta bascachelagringsklassen (ObjectCache) definierar följande cachelagringsuppgifter:

  • Skapa och hantera cacheposter.

  • Ange information om förfallodatum och borttagning.

  • Utlöser händelser som genereras som svar på ändringar i cacheposter.

Klassen MemoryCache är en minnesintern cacheimplementering av ObjectCache klassen. Du kan använda MemoryCache klassen för de flesta cachelagringsuppgifter.

Kommentar

Klassen MemoryCache modelleras på det ASP.NET cacheobjekt som definieras i System.Web.Caching namnområdet. Den interna cachelagringslogik som liknar den logik som angavs i tidigare versioner av ASP.NET.

Ett exempel på hur du använder för cachelagring i ett WPF-program finns i Genomgång: Cachelagring programdata i ett WPF-program.

Cachelagring i ASP.NET program

Cachelagringsklasserna i System.Runtime.Caching namnområdet tillhandahåller funktioner för cachelagring av data i ASP.NET.

Kommentar

Om ditt program är avsett för .NET Framework 3.5 eller tidigare måste du använda cachelagringsklasserna som definieras i System.Web.Caching namnområdet. Mer information finns i ASP.NET Cachelagring Översikt.

Kommentar

När du utvecklar nya program rekommenderar vi att du använder MemoryCache klassen. API:et System.Runtime.Caching som anges i namnområdet är som det API som anges i Cache namnområdet. Därför är API:et bekant om du använde cachelagring i tidigare versioner av ASP.NET. Ett exempel på hur du använder cachelagring i ASP.NET program finns i Genomgång: Cachelagring programdata i ASP.NET.

Cachelagring av utdata

Om du vill cachelagrat programdata manuellt kan du använda MemoryCache klassen i ASP.NET. ASP.NET stöder också cachelagring av utdata, som lagrar genererade utdata från sidor, kontroller och HTTP-svar i minnet. Du kan konfigurera cachelagring av utdata deklarativt på en ASP.NET webbsida eller med hjälp av inställningarna i filen Web.config. Mer information finns i outputCache-element för cachelagring (ASP.NET Inställningar schema).

ASP.NET kan du utöka cachelagring av utdata genom att skapa anpassade utdatacacheproviders. Genom att använda anpassade leverantörer kan du lagra cachelagrat innehåll med hjälp av andra lagringsenheter, till exempel diskar, molnlagring och distribuerade cachemotorer. Om du vill skapa en anpassad cacheprovider för utdata skapar du en klass som härleds från OutputCacheProvider klassen och konfigurerar programmet så att det använder den anpassade cacheprovidern för utdata.

Cachelagring i WCF REST Services

För WCF REST-tjänster gör .NET Framework att du kan dra nytta av den deklarativa cachelagring av utdata som är tillgänglig i ASP.NET. På så sätt kan du cachelagras svar från WCF REST-tjänståtgärder. När en användare skickar en HTTP GET-begäran till en tjänst som är konfigurerad för cachelagring skickar ASP.NET tillbaka det cachelagrade svaret och tjänstmetoden anropas inte. När cacheminnet upphör att gälla nästa gång en användare skickar en HTTP GET-begäran anropas tjänstmetoden och svaret cachelagras igen.

Med .NET Framework kan du också implementera villkorlig HTTP GET-cachelagring. I REST-scenarier används ofta en villkorlig HTTP GET-begäran av tjänster för att implementera intelligent HTTP-cachelagring enligt beskrivningen i HTTP-specifikationen. Mer information finns i Cachelagring Support för WCF Web HTTP Services.

Utöka Cachelagring i .NET Framework

Cachelagring i .NET Framework är utformad för att vara utökningsbar. Med ObjectCache klassen kan du skapa en anpassad cacheimplementering. Den här klassen innehåller medlemmar som är tillgängliga för alla hanterade program, inklusive Windows Forms, Windows Presentation Foundation (WPF) och Windows Communications Foundation (WCF). Du kan göra detta för att skapa en cacheklass som använder en annan lagringsmekanism, eller om du vill ha detaljerad kontroll över cacheåtgärder.

Om du vill utöka cachelagringen kan du göra följande:

Mer information finns i posten Extensible Output Cachelagring with ASP.NET 4 (VS 2010 and .NET Framework 4.0 Series) på Scott Guthrie blogg.

Se även