Windows Azure Caching

en i minnet, distribuerad cachningsfunktion designad för Microsoft Azure-applikationer. Cachning var tillgänglig som en del av Windows Azure SDK. Azure Managed Cache och In-Role Cache-tjänsterna togs bort och Microsoft rekommenderade migrering till Azure Redis Cache.

Arkitektur

Windows Azure Caching tillåter en molntjänst att vara värd för Caching på en Windows Azure-roll. Cachen distribueras över alla pågående instanser av den rollen. Därför bestäms mängden tillgängligt minne i cachen av antalet körande instanser av rollen som är värd för Caching och mängden fysiskt minne som reserverats för Caching för varje instans.

Det finns två distributionstopologier för cachelagring:

  • Tillägnad
  • Samlokaliserat

Dedikerad topologi

I den dedikerade topologin definierar du en arbetarroll som är dedikerad till Caching. Detta innebär att allt tillgängligt minne i arbetarrollen används för cachelagring och driftsoverhead.

Följande diagram visar cachelagring i en dedikerad topologi. Molntjänsten som visas har tre roller: Web1, Worker1 och Cache1. Det finns två pågående instanser av varje roll. I det här exemplet är cachen distribuerad över alla instanser av den dedikerade Cache1-rollen.

Represents a running Windows Azure cloud service that uses Caching with a dedicated topology.

En dedikerad topologi har fördelen av att skala cachingnivån oberoende av någon annan roll i molntjänsten. För bästa cachingprestanda rekommenderas en dedikerad topologi eftersom rollinstanserna inte delar sina resurser med annan programkod och tjänster.

Samlokaliserad topologi

I en samlokaliserad topologi använder du en procentandel av tillgängligt minne på befintliga webb- eller arbetarroller för cachelagring.

Följande diagram visar cachelagring i en samlokaliserad topologi. Molntjänsten har två roller: Web1 och Worker1. Det finns två pågående instanser av varje roll. I det här exemplet är cachen distribuerad över alla instanser av Web1-rollen. Eftersom den här rollen också är värd för webbgränssnittet för molntjänsten är cachen konfigurerad att använda endast en procentandel av det fysiska minnet för varje instans av Web1-rollen.

Represents a running Windows Azure cloud service that uses Caching with a co-located topology.

En samlokaliserad cache är ett kostnadseffektivt sätt att använda befintligt minne på en roll inom en molntjänst.

Exempel

Följande avsnitt visar Windows Azure Caching-konfiguration och kodexempel.

Konfigurationsexempel

I Visual Studio konfigureras Caching på fliken Caching för egenskaperna för rollen som är värd för Caching. Detta gör underliggande ändringar i filen ServiceConfiguration.cscfg. Dessa inställningar bestämmer vilken topologi som används (dedikerad eller samlokaliserad) och antalet namngivna cacher och deras inställningar.

Andra roller måste konfigureras för att använda Caching. Ett sätt att göra detta är med ett NuGet- paket. Detta inkluderar att ändra web.config så att den innehåller en korrekt konfigurerad dataCacheClients-sektion. Följande exempel på dataCacheClients-avsnittet anger att rollen som är värd för Caching heter "CacheWorker1".


   
       
  
 <dataCacheClients>  <dataCacheClient  name=  "default"  >  <autoDiscover  isEnabled=  "true"  identifier=  "CacheWorkerRole1"  />  </dataCacheClient>  </dataCacheClients> 

Kodexempel

Observera att kodexemplen i det här avsnittet visas i C# .

När du är värd för Caching på roller kan klasskonstruktorn DataCache användas för att specificera både den namngivna cachen och dataCacheClient- sektionen för cacheklientinställningarna. Följande kod visar hur man skapar en namngiven cache, NamedCache2 , med hjälp av inställningarna från en dataCacheClient- sektion med namnet customClient .

      var  cache  =  new  DataCache  (  "NamedCache2"  ,  "customClient" )  ; 

Följande metod visar hur man använder Cache -objektet för att hämta data från cachen. I det här exemplet är en användaridentifierare ( användarid ) 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 användar-id -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  ); 

Delad cachelagring

Windows Azure Shared Caching tillhandahåller cachning som en hanterad tjänst. Till skillnad från samlokaliserade eller dedikerade topologier finns inte cachen på Windows Azure-roller i en enda molntjänstdistribution. Istället tillhandahålls cachen som en multitenant-tjänst med användningskvoter. Tjänsten är uppdelad i nivåer som sträcker sig från 128 MB till 4 GB. Förutom lagringskapacitet ger varje nivå ökande processor- och nätverkskapacitet. Delad cache ger ett sätt för flera molntjänster att komma åt samma cache.

Historia

Windows Azure Caching har sina rötter i en lokal teknologi, AppFabric . Den släpptes ursprungligen som en av flera Windows Azure AppFabric-tjänster, men AppFabric-beteckningen i Windows Azure har sedan dess övergivits. Många av sammansättningsnamnen, namnområdena och API:erna är identiska mellan Windows Azure Caching och AppFabric Caching. Den första versionen av Caching för Windows Azure i april 2011 gav cachning som en hanterad tjänst i Windows Azure. Detta erbjudande kallas nu Shared Caching.

I oktober 2012 lades stöd till för att vara värd för Caching på roller inom en molntjänstdistribution. Detta kallas nu Windows Azure Caching.

Relaterad cachningsteknik

Windows Azure 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