AppFabric Caching
AppFabric Caching tillhandahåller en i minnet, distribuerad cacheplattform för Windows Server . Microsoft utvecklade AppFabric Caching och släppte det som en del av AppFabric .
Arkitektur
AppFabric Caching lagrar serialiserade hanterade objekt i ett cache-kluster. Cacheklustret består av en eller flera maskiner som slår samman sitt tillgängliga fysiska minne. Detta poolade minne presenteras för cacheklienter som en enda källa för cachminne. Objekt lagras och nås med ett tillhörande nyckelvärde.
AppFabric Caching-funktioner måste installeras på varje server i cacheklustret. Efter installationen måste AppFabric Configuration Wizard användas för att ansluta varje server till cacheklustret. En extern filresurs eller databas krävs för att bibehålla cache-klustrets konfigurationsinställningar. En uppsättning Windows PowerShell- kommandon för cachelagring tillhandahåller administrationsmöjligheter på cacheklustret.
Kodexempel
Observera att kodexemplen i det här avsnittet visas i C# .
En vanlig uppgift är att skapa kod som sätter, hämtar och tar bort objekt från cachen. Dessa operationer är inriktade på antingen standardcachen eller en namngiven cache.
Skapa först en statisk DataCache- medlem:
offentlig statisk DataCache _cache ;
Skapa sedan en metod som kommer åt denna cache. Cachens egenskaper kan lagras i filerna app.config eller web.config. Cacheinställningarna kan också konfigureras programmässigt. Följande exempel visar hur man programmässigt konfigurerar cachen.
public static DataCache GetCache () { if ( _cache != null ) returnera _cache ; // Definiera array för 1 cache värd var servers = new List < DataCacheServerEndpoint > ( 1 ) ; // Specificera cachevärddetaljer // Parameter 1 = värdnamn // Parameter 2 = cacheportnummerservrar . Lägg till ( ny DataCacheServerEndpoint ( "minmaskin" , 22233 )); // Skapa cachekonfiguration var configuration = new DataCacheFactoryConfiguration (); // Ställ in cachevärdens konfiguration . Servrar = servrar ; // Ställ in standardegenskaper för lokal cache (lokal cache inaktiverad) konfiguration . LocalCacheProperties = nya DataCacheLocalCacheProperties (); // Inaktivera spårning för att undvika informativa/omfattande meddelanden på webbsidan DataCacheClientLogManager . ChangeLogLevel ( System . Diagnostics . TraceLevel . Off ); // Skicka konfigurationsinställningar till cacheFactory-konstruktorn _factory = ny DataCacheFactory ( konfiguration ); // Få referens till namngiven cache som heter "default" _cache = _factory . GetCache ( "standard" ); returnera _cache ; }
Följande metod visar hur du använder objektet _cache för att hämta data från cachen. I det här exemplet är en användaridentifierare ( userId ) nyckeln för det associerade användarinformationsobjektet. Koden försöker först hämta denna användarinformation från cachen med hjälp av userId- nyckeln. Om det inte lyckas, hämtar koden informationen med en databasfråga och lagrar sedan den returnerade användardatan i cachen. Nästa gång samma kod körs kommer användarinformationen att returneras från cachen istället för databasen. Detta förutsätter att den cachade datan inte har förfallit eller vräkts.
dataType GetUserData ( string userId ) { dataType data = null ; // Försök att hämta användardata från cachen: object dataObject = _cache . Get ( användar-ID ); if ( dataObject != null ) data = ( dataType ) dataObject ; else { // Om det inte finns i cachen, hämta det från databasen: data = GetUserDataFromDatabase ( "SELECT * FROM users WHERE userid = @userId" , userId ) ; // Lägg den returnerade datan i cachen för framtida förfrågningar: _cache . Lägg till ( användar-ID, data ) ; } returnera data ; }
Följande metod visar hur du uppdaterar data som redan finns i cachen.
void UpdateUserData ( string userId , dataType data ) { // Uppdatera användarinformationen i databasen: result = UpdateUserDataInDatabase ( userId , data ); if ( resultat ) { // Om uppdateringen lyckades uppdatera cachen: _cache . Put ( användar-ID , data ); } }
Följande anrop tar bort objektet från cachen.
_cache . Ta bort ( användar-ID );
Historia
Ursprungligen hade AppFabric Caching flera betaversioner under kodnamnet Velocity . I juni 2010 Microsoft officiellt AppFabric Caching som en del av AppFabric . För mer detaljerad information, se historikavsnittet på AppFabric- sidan.
Relaterad cachingteknik
AppFabric Caching är relaterat till andra Microsofts cachningstekniker. Dessa teknologier delar liknande funktioner, såsom sammansättningens namn, namnutrymme och typer. Det finns dock vissa skillnader. Tabellen nedan beskriver dessa tekniker.
Cachingteknik | Mål | Installerad av | Beskrivning |
---|---|---|---|
AppFabric Caching | På plats | AppFabric | Distribuerad lokal cache som använder servrar som användaren tillhandahåller och hanterar. |
Windows Azure Caching | Moln | Windows Azure SDK | Caching distribueras över instanserna av en enskild roll i en Windows Azure molntjänstdistribution. |
Windows Azure delad cachelagring | Moln | Windows Azure SDK | Cachning tillhandahålls som en multitenant-tjänst för användning av Windows Azure molntjänster. |
externa länkar
- AppFabric 1.1 Cachingfunktioner
- AppFabric Class Library Reference
- Ladda ner: Microsoft AppFabric 1.1 för Windows Server
- Ladda ner: Kumulativt uppdateringspaket 3 för Microsoft AppFabric 1.1 för Windows Server