Eseguire la migrazione dal Servizio cache gestita alla Cache Redis di AzureMigrate from Managed Cache Service to Azure Redis Cache

La migrazione di un'applicazione che usa il Servizio cache gestita di Azure alla Cache Redis di Azure può essere eseguita con modifiche minime all'applicazione, a seconda delle funzionalità del Servizio cache gestita usate dall'applicazione di memorizzazione nella cache.Migrating your applications that use Azure Managed Cache Service to Azure Redis Cache can be accomplished with minimal changes to your application, depending on the Managed Cache Service features used by your caching application. Le API non sono identiche, ma sono simili e gran parte del codice esistente che usa il Servizio cache gestita per accedere a una cache può essere riutilizzata con modifiche minime.While the APIs are not exactly the same they are similar, and much of your existing code that uses Managed Cache Service to access a cache can be reused with minimal changes. Questo argomento illustra come apportare le modifiche necessarie alla configurazione e all'applicazione per eseguire la migrazione delle applicazioni che usano il Servizio cache gestita alla Cache Redis di Azure e illustra come alcune delle funzioni della Cache Redis di Azure possano essere usate per implementare la funzionalità di una cache del Servizio cache gestita.This topic shows how to make the necessary configuration and application changes to migrate your Managed Cache Service applications to use Azure Redis Cache, and shows how some of the features of Azure Redis Cache can be used to implement the functionality of a Managed Cache Service cache.

Nota

Servizio cache gestita e Cache nel ruolo sono stati ritirati il 30 novembre 2016.Managed Cache Service and In-Role Cache were retired November 30, 2016. Se sono presenti distribuzioni di Cache nel ruolo di cui si vuole eseguire la migrazione a Cache Redis di Azure, è possibile seguire la procedura illustrata in questo articolo.If you have any In-Role Cache deployments that you want to migrate to Azure Redis Cache, you can follow the steps in this article.

Passaggi della migrazioneMigration Steps

I passaggi seguenti sono necessari per eseguire la migrazione di un'applicazione che usa il Servizio cache gestita alla Cache Redis di Azure.The following steps are required to migrate a Managed Cache Service application to use Azure Redis Cache.

  • Eseguire il mapping delle funzionalità del Servizio cache gestita alla Cache Redis di AzureMap Managed Cache Service features to Azure Redis Cache
  • Scegliere un'offerta per il servizio cacheChoose a Cache Offering
  • Creare una cacheCreate a Cache
  • Configurare i client della cacheConfigure the Cache Clients
    • Rimuovere la configurazione del Servizio cache gestitaRemove the Managed Cache Service Configuration
    • Configurare un client della cache con il pacchetto NuGet StackExchange.RedisConfigure a cache client using the StackExchange.Redis NuGet Package
  • Eseguire la migrazione del codice del Servizio cache gestitaMigrate Managed Cache Service code
    • Connettersi alla cache con la classe ConnectionMultiplexerConnect to the cache using the ConnectionMultiplexer class
    • Accedere ai tipi di dati primitivi nella cacheAccess primitive data types in the cache
    • Gestire gli oggetti .NET nella cacheWork with .NET objects in the cache
  • Eseguire la migrazione dello stato della sessione ASP.NET e della memorizzazione nella cache di output alla Cache Redis di AzureMigrate ASP.NET Session State and Output caching to Azure Redis Cache

Eseguire il mapping delle funzionalità del Servizio cache gestita alla Cache Redis di AzureMap Managed Cache Service features to Azure Redis Cache

Il Servizio cache gestita di Azure e la Cache Redis di Azure sono simili, ma implementano alcune funzionalità in modi diversi.Azure Managed Cache Service and Azure Redis Cache are similar but implement some of their features in different ways. Questa sezione descrive alcune delle differenze e fornisce materiale sussidiario sull'implementazione delle funzionalità del Servizio cache gestita nella Cache Redis di Azure.This section describes some of the differences and provides guidance on implementing the features of Managed Cache Service in Azure Redis Cache.

Funzionalità del Servizio cache gestitaManaged Cache Service feature Supporto del Servizio cache gestitaManaged Cache Service support Supporto della Cache Redis di AzureAzure Redis Cache support
Cache denominateNamed caches Viene configurata una cache predefinita e nelle offerte cache Standard e Premium possono essere configurate fino a nove cache denominate aggiuntive, se necessario.A default cache is configured, and in the Standard and Premium cache offerings, up to nine additional named caches can be configured if desired. Le cache Redis di Azure hanno un numero di database configurabile, 16 database per impostazione predefinita, che possono essere usati per implementare una funzionalità simile alle cache denominate.Azure Redis caches have a configurable number of databases (default of 16) that can be used to implement a similar functionality to named caches. Per altre informazioni, vedere Cosa sono i database Redis? e Configurazione predefinita del server Redis.For more information, see What are Redis databases? and Default Redis server configuration.
Disponibilità elevataHigh Availability Fornisce disponibilità elevata per gli elementi nella cache nelle offerte cache Standard e Premium.Provides high availability for items in the cache in the Standard and Premium cache offerings. Se gli elementi vengono persi a causa di un errore, sono ancora disponibili le copie di backup degli elementi nella cache.If items are lost due to a failure, backup copies of the items in the cache are still available. Le scritture nella cache secondaria vengono eseguite in modo sincrono.Writes to the secondary cache are made synchronously. La disponibilità elevata è disponibile nelle offerte cache Standard e Premium, che hanno una configurazione primaria/di replica a due nodi (ogni condivisione in una cache Premium ha una coppia primaria/ di replica).High availability is available in the Standard and Premium cache offerings, which have a two node Primary/Replica configuration (each shard in a Premium cache has a primary/replica pair). Le scritture nella replica vengono eseguite in modo asincrono.Writes to the replica are made asynchronously. Per altre informazioni, vedere Prezzi di Cache Redis di Azure.For more information, see Azure Redis Cache pricing.
NotificheNotifications Consente ai client di ricevere notifiche asincrone quando in una cache denominata si verificano svariate operazioni della cache.Allows clients to receive asynchronous notifications when a variety of cache operations occur on a named cache. Le applicazioni client possono usare la pubblicazione/sottoscrizione di Redis o le notifiche dello spazio delle chiavi per ottenere una funzionalità simile alle notifiche.Client applications can use Redis pub/sub or Keyspace notifications to achieve a similar functionality to notifications.
Cache localeLocal cache Archivia una copia degli oggetti memorizzati nella cache in locale nel client per un accesso velocissimo.Stores a copy of cached objects locally on the client for extra-fast access. Le applicazioni client dovrebbero implementare questa funzionalità usando un dizionario o una struttura di dati simile.Client applications would need to implement this functionality using a dictionary or similar data structure.
Criteri di rimozioneEviction Policy Nessuno o utilizzati meno di recente (LRU).None or LRU. Il criterio predefinito è LRU.The default policy is LRU. La Cache Redis di Azure supporta i criteri di rimozione seguenti: volatile-lru, allkeys-lru, volatile-random, allkeys-random, volatile-ttl, noeviction.Azure Redis Cache supports the following eviction policies: volatile-lru, allkeys-lru, volatile-random, allkeys-random, volatile-ttl, noeviction. Il criterio predefinito è volatile-lru.The default policy is volatile-lru. Per altre informazioni, vedere Configurazione predefinita del server Redis.For more information, see Default Redis server configuration.
Criteri di scadenzaExpiration Policy Il criterio di scadenza predefinito è Assoluto e l'intervallo di scadenza predefinito è di dieci minuti.The default expiration policy is Absolute and the default expiration interval is ten minutes. Sono disponibili anche i criteri Scorrevole e Mai.Sliding and Never policies are also available. Per impostazione predefinita, gli elementi nella cache non scadono, ma è possibile impostare una scadenza per ogni scrittura usando gli overload impostati della cache.By default items in the cache do not expire, but an expiration can be configured on a per write basis using cache set overloads. Per altre informazioni, vedere Aggiungere e recuperare oggetti dalla cache.For more information, see Add and retrieve objects from the cache.
Aree e aggiunta di tagRegions and Tagging Le aree sono sottogruppi degli elementi memorizzati nella cache.Regions are subgroups for cached items. Le aree supportano anche l'annotazione degli elementi memorizzati nella cache con stringhe descrittive aggiuntive chiamate tag.Regions also support the annotation of cached items with additional descriptive strings called tags. Le aree supportano l'esecuzione di operazioni di ricerca in tutti gli elementi con tag di tale area.Regions support the ability to perform search operations on any tagged items in that region. Tutti gli elementi in un'area si trovano in un singolo nodo del cluster di cache.All items within a region are located within a single node of the cache cluster. Una cache Redis è costituita da un singolo nodo (a meno che non sia abilitato il cluster Redis) e quindi il concetto di aree del Servizio cache gestita non è applicabile.A Redis cache consists of a single node (unless Redis cluster is enabled) so the concept of Managed Cache Service regions does not apply. Poiché Redis supporta le operazioni di ricerca e con caratteri jolly quando si recuperano le chiavi, i tag descrittivi possono essere incorporati nei nomi delle chiavi e usati per recuperare gli elementi in seguito.Redis supports searching and wildcard operations when retrieving keys so descriptive tags can be embedded within the key names and used to retrieve the items later. Per un esempio di implementazione di una soluzione di aggiunta di tag con Redis, vedere la pagina relativa all' implementazione dell'aggiunta di tag della cache con Redis.For an example of implementing a tagging solution using Redis, see Implementing cache tagging with Redis.
SerializzazioneSerialization La cache gestita supporta NetDataContractSerializer, BinaryFormatter e l'uso di serializzatori personalizzati.Managed Cache supports NetDataContractSerializer, BinaryFormatter, and the use of custom serializers. Il valore predefinito è NetDataContractSerializer.The default is NetDataContractSerializer. È responsabilità dell'applicazione client serializzare gli oggetti .NET prima di inserirli nella cache, con il serializzatore scelto dallo sviluppatore dell'applicazione client.It is the responsibility of the client application to serialize .NET objects before placing them into the cache, with the choice of the serializer up to the client application developer. Per altre informazioni e per il codice di esempio, vedere Gestire gli oggetti .NET nella cache.For more information and sample code, see Work with .NET objects in the cache.
Emulatore di cacheCache emulator Il servizio Cache gestita offre un emulatore di cache locale.Managed Cache provides a local cache emulator. Cache Redis di Azure non ha un emulatore, ma per ottenere un'esperienza di emulazione è possibile eseguire la build MSOpenTech di redis-server.exe in locale .Azure Redis Cache does not have an emulator, but you can run the MSOpenTech build of redis-server.exe locally to provide an emulator experience.

Scegliere un'offerta per il servizio cacheChoose a Cache Offering

Cache Redis di Microsoft Azure è disponibile nei seguenti livelli:Microsoft Azure Redis Cache is available in the following tiers:

  • Basic: singolo nodo.Basic – Single node. Più dimensioni fino a 53 GB.Multiple sizes up to 53 GB.
  • Standard: principale/replica a due nodi.Standard – Two-node Primary/Replica. Più dimensioni fino a 53 GB.Multiple sizes up to 53 GB. Contratti di servizio del 99,9%.99.9% SLA.
  • Premium : principale/replica a due nodi con fino a 10 partizioni.Premium – Two-node Primary/Replica with up to 10 shards. Più dimensioni da 6 GB a 530 GB.Multiple sizes from 6 GB to 530 GB. Supporto per tutte le funzionalità del piano Standard e altre, tra cui cluster Redis, persistenza Redis e Rete virtuale di Azure.All Standard tier features and more including support for Redis cluster, Redis persistence, and Azure Virtual Network. Contratti di servizio del 99,9%.99.9% SLA.

Ogni livello presenta differenze in termini di funzionalità e prezzi.Each tier differs in terms of features and pricing. Le funzionalità vengono illustrate più avanti in questa guida. Per altre informazioni sui prezzi, vedere Dettagli prezzi del servizio Cache.The features are covered later in this guide, and for more information on pricing, see Cache Pricing Details.

Per iniziare la migrazione, scegliere la dimensione corrispondente a quella della cache del Servizio cache gestita precedente e quindi aumentarla o ridurla a seconda dei requisiti dell'applicazione.A starting point for migration is to pick the size that matches the size of your previous Managed Cache Service cache, and then scale up or down depending on the requirements of your application. Per altro materiale sussidiario sulla scelta dell'offerta appropriata per la Cache Redis di Azure, vedere Quali offerte e dimensioni della Cache Redis è consigliabile usare?.For more guidance on choosing the right Azure Redis Cache offering, see What Redis Cache offering and size should I use?.

Creare una cacheCreate a Cache

Per creare una cache, accedere al portale di Azure e fare clic su Nuovo > Database > Cache Redis.To create a cache, first sign in to the Azure portal, and click New > Databases > Redis Cache.

Nota

Se non si ha un account Azure, è possibile creare un account Azure gratuito in pochi minuti.If you don't have an Azure account, you can Open an Azure account for free in just a couple of minutes.

New cache

Nota

Oltre a creare cache nel portale di Azure, è possibile crearle usando modelli di Resource Manager, PowerShell o l'interfaccia della riga di comando di Azure.In addition to creating caches in the Azure portal, you can also create them using Resource Manager templates, PowerShell, or Azure CLI.

Nel pannello Nuova cache Redis specificare la configurazione desiderata per la cache.In the New Redis Cache blade, specify the desired configuration for the cache.

Create cache

  • In Nome DNSimmettere il nome univoco di una cache da usare per l'endpoint della cache.In Dns name, enter a unique cache name to use for the cache endpoint. Il nome della cache deve essere una stringa contenente da 1 a 63 caratteri che possono includere solo numeri, lettere e il carattere - .The cache name must be a string between 1 and 63 characters and contain only numbers, letters, and the - character. Il nome della cache non può iniziare o terminare con il carattere - e i caratteri - consecutivi non sono validi.The cache name cannot start or end with the - character, and consecutive - characters are not valid.
  • Per Sottoscrizioneselezionare la sottoscrizione di Azure da usare per la cache.For Subscription, select the Azure subscription that you want to use for the cache. Se l'account ha una sola sottoscrizione, questa verrà selezionata automaticamente e l'elenco a discesa Sottoscrizione non verrà visualizzato.If your account has only one subscription, it will be automatically selected and the Subscription drop-down will not be displayed.
  • In Gruppo di risorseselezionare o creare un gruppo di risorse per la cache.In Resource group, select or create a resource group for your cache. Per altre informazioni, vedere Uso di gruppi di risorse per gestire le risorse di Azure.For more information, see Using Resource groups to manage your Azure resources.
  • Usare Posizione per specificare la posizione geografica in cui viene ospitata la cache.Use Location to specify the geographic location in which your cache is hosted. Per prestazioni ottimali, è consigliabile creare la cache nella stessa area dell'applicazione client della cache.For the best performance, Microsoft strongly recommends that you create the cache in the same region as the cache client application.
  • Usare Piano tariffario per selezionare le dimensioni e le funzionalità desiderate per la cache.Use Pricing tier to select the desired cache size and features.
  • cluster Redis consente di creare cache con dimensioni maggiori di 53 GB e di partizionare i dati su più nodi Redis.Redis cluster allows you to create caches larger than 53 GB and to shard data across multiple Redis nodes. Per altre informazioni, vedere Come configurare il clustering per una Cache Redis di Azure Premium.For more information, see How to configure clustering for a Premium Azure Redis Cache.
  • Persistenza Redis consente di rendere la cache persistente in un account di archiviazione di Azure.Redis persistence offers the ability to persist your cache to an Azure Storage account. Per istruzioni su come configurare la persistenza, vedere Come configurare la persistenza per una Cache Redis di Azure Premium.For instructions on configuring persistence, see How to configure persistence for a Premium Azure Redis Cache.
  • Rete virtuale fornisce isolamento e protezione avanzati limitando l'accesso alla cache ai soli client che si trovano all'interno della rete virtuale di Azure specificata.Virtual Network provides enhanced security and isolation by restricting access to your cache to only those clients within the specified Azure Virtual Network. È possibile utilizzare tutte le funzionalità di rete virtuale, ad esempio subnet, i criteri di controllo di accesso e altre funzionalità per limitare ulteriormente l'accesso a Redis.You can use all the features of VNet such as subnets, access control policies, and other features to further restrict access to Redis. Per altre informazioni, vedere Come configurare il supporto di una rete virtuale per una Cache Redis di Azure Premium.For more information, see How to configure Virtual Network support for a Premium Azure Redis Cache.
  • Per le nuove cache la porta senza SSL è disabilitata per impostazione predefinita.By default, non-SSL access is disabled for new caches. Per abilitare la porta non SSL, selezionare Sblocca la porta 6379 (senza crittografia SSL).To enable the non-SSL port, check Unblock port 6379 (not SSL encrypted).

Dopo aver configurato le opzioni della nuova cache, fare clic su Crea.Once the new cache options are configured, click Create. La creazione della cache può richiedere alcuni minuti.It can take a few minutes for the cache to be created. Per verificare lo stato, è possibile monitorare l'avanzamento nella Schermata iniziale.To check the status, you can monitor the progress on the startboard. Lo stato della cache dopo la creazione sarà In esecuzione e sarà possibile usarla subito con le impostazioni predefinite.After the cache has been created, your new cache has a Running status and is ready for use with default settings.

Cache created

Configurare i client della cacheConfigure the Cache Clients

Una volta creata e configurata la cache, il passaggio successivo consiste nel rimuovere la configurazione del Servizio cache gestita e nell'aggiungere la configurazione e i riferimenti della Cache Redis di Azure in modo che i client della cache possano accedere alla cache.Once the cache is created and configured, the next step is to remove the Managed Cache Service configuration, and add the add the Azure Redis Cache configuration and references so that cache clients can access the cache.

  • Rimuovere la configurazione del Servizio cache gestitaRemove the Managed Cache Service Configuration
  • Configurare un client della cache con il pacchetto NuGet StackExchange.RedisConfigure a cache client using the StackExchange.Redis NuGet Package

Rimuovere la configurazione del Servizio cache gestitaRemove the Managed Cache Service Configuration

Prima che le applicazioni client possano essere configurate per la Cache Redis di Azure, è necessario rimuovere la configurazione e i riferimenti ad assembly del Servizio cache gestita esistenti disinstallando il pacchetto NuGet del Servizio cache gestita.Before the client applications can be configured for Azure Redis Cache, the existing Managed Cache Service configuration and assembly references must be removed by uninstalling the Managed Cache Service NuGet package.

Per disinstallare il pacchetto NuGet del Servizio cache gestita, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Gestisci pacchetti NuGet.To uninstall the Managed Cache Service NuGet package, right-click the client project in Solution Explorer and choose Manage NuGet Packages. Selezionare il nodo installati e digitare WindowsAzure.Caching nella casella di ricerca dei pacchetti installati.Select the Installed packages node, and type WindowsAzure.Caching into the Search installed packages box. Selezionare Windows Azure Cache (o Windows Azure Caching a seconda della versione del pacchetto NuGet), fare clic su Disinstalla e su Chiudi.Select Windows Azure Cache (or Windows Azure Caching depending on the version of the NuGet package), click Uninstall, and then click Close.

Disinstallare il pacchetto NuGet del Servizio cache gestita di Azure

La disinstallazione del pacchetto NuGet del Servizio cache gestita rimuove gli assembly del Servizio cache gestita e le voci del Servizio cache gestita dal file app.config o web.config dell'applicazione client.Uninstalling the Managed Cache Service NuGet package removes the Managed Cache Service assemblies and the Managed Cache Service entries in the app.config or web.config of the client application. Poiché alcune impostazioni personalizzate potrebbero non essere rimosse quando si disinstalla il pacchetto NuGet, aprire web.config o app.config e verificare che gli elementi seguenti siano stati completamente rimossi.Because some customized settings may not be removed when uninstalling the NuGet package, open web.config or app.config and ensure that the following elements are completely removed.

Verificare che la voce dataCacheClients sia stata rimossa dall'elemento configSections.Ensure that the dataCacheClients entry is removed from the configSections element. Non rimuovere l'intero elemento configSections, ma solo la voce dataCacheClients, se presente.Do not remove the entire configSections element; just remove the dataCacheClients entry, if it is present.

<configSections>
  <!-- Existing sections omitted for clarity. -->
  <section name="dataCacheClients"type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere"/>
</configSections>

Verificare che la sezione dataCacheClients sia stata rimossa.Ensure that the dataCacheClients section is removed. La sezione dataCacheClients sarà simile all'esempio seguente.The dataCacheClients section will be similar to the following example.

<dataCacheClients>
  <dataCacheClientname="default">
    <!--To use the in-role flavor of Azure Cache, set identifier to be the cache cluster role name -->
    <!--To use the Azure Managed Cache Service, set identifier to be the endpoint of the cache cluster -->
    <autoDiscoverisEnabled="true"identifier="[Cache role name or Service Endpoint]"/>

    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
    <!--Use this section to specify security settings for connecting to your cache. This section is not required if your cache is hosted on a role that is a part of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="true">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
  </dataCacheClient>
</dataCacheClients>

Una volta rimossa la configurazione del Servizio cache gestita, è possibile configurare il client della cache, come descritto nella sezione seguente.Once the Managed Cache Service configuration is removed, you can configure the cache client as described in the following section.

Configurare un client della cache con il pacchetto NuGet StackExchange.RedisConfigure a cache client using the StackExchange.Redis NuGet Package

Le applicazioni .NET possono usare il client della cache StackExchange.Redis , che può essere configurato in Visual Studio con un pacchetto NuGet per semplificare la configurazione delle applicazioni client della cache..NET applications can use the StackExchange.Redis cache client, which can be configured in Visual Studio using a NuGet package that simplifies the configuration of cache client applications.

Nota

Per altre informazioni, vedere la pagina di Github StackExchange.Redise la documentazione del client della cache StackExchange.Redis.For more information, see the StackExchange.Redis github page and the StackExchange.Redis cache client documentation.

Per configurare un'applicazione client in Visual Studio con il pacchetto NuGet StackExchange.Redis, fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e scegliere Gestisci pacchetti NuGet.To configure a client application in Visual Studio using the StackExchange.Redis NuGet package, right-click the project in Solution Explorer and choose Manage NuGet Packages.

Manage NuGet packages

Digitare StackExchange.Redis o StackExchange.Redis.StrongName nella casella di testo di ricerca, selezionare la versione desiderata nei risultati e fare clic su Installa.Type StackExchange.Redis or StackExchange.Redis.StrongName into the search text box, select the desired version from the results, and click Install.

Nota

Se si preferisce usare una versione con nome sicuro della libreria client StackExchange.Redis, scegliere StackExchange.Redis.StrongName. In caso contrario, scegliere StackExchange.Redis.If you prefer to use a strong-named version of the StackExchange.Redis client library, choose StackExchange.Redis.StrongName; otherwise choose StackExchange.Redis.

StackExchange.Redis NuGet package

Il pacchetto NuGet scarica e aggiunge i riferimenti ad assembly necessari per consentire all'applicazione client di accedere a Cache Redis di Azure con il client della cache StackExchange.Redis.The NuGet package downloads and adds the required assembly references for your client application to access Azure Redis Cache with the StackExchange.Redis cache client.

Nota

Se il progetto è stato configurato per utilizzare StackExchange.Redis, è possibile controllare la presenza di aggiornamenti per il pacchetto da Gestione pacchetti NuGet.If you have previously configured your project to use StackExchange.Redis, you can check for updates to the package from the NuGet Package Manager. Per controllare e installare le versioni aggiornate del pacchetto NuGet StackExchange.Redis, fare clic su Aggiornamenti nella finestra di Gestione pacchetti NuGet.To check for and install updated versions of the StackExchange.Redis NuGet package, click Updates in the the NuGet Package Manager window. Se è disponibile un aggiornamento per il pacchetto NuGet StackExchange.Redis, è possibile aggiornare il progetto in modo da utilizzare la versione aggiornata.If an update to the StackExchange.Redis NuGet package is available, you can update your project to use the updated version.

È anche possibile installare il pacchetto NuGet StackExchange.Redis facendo clic su Gestione pacchetti NuGet, Console di Gestione pacchetti dal menu Strumenti ed eseguendo questo comando dalla finestra Console di Gestione pacchetti.You can also install the StackExchange.Redis NuGet package by clicking NuGet Package Manager, Package Manager Console from the Tools menu, and running the following command from the Package Manager Console window.

Install-Package StackExchange.Redis

Eseguire la migrazione del codice del Servizio cache gestitaMigrate Managed Cache Service code

L'API del client della cache StackExchange.Redis è simile al Servizio cache gestita.The API for the StackExchange.Redis cache client is similar to the Managed Cache Service. Questa sezione contiene una panoramica delle differenze.This section provides an overview of the differences.

Connettersi alla cache con la classe ConnectionMultiplexerConnect to the cache using the ConnectionMultiplexer class

Nel Servizio cache gestita le connessioni alla cache sono gestite dalle classi DataCacheFactory e DataCache.In Managed Cache Service, connections to the cache were handled by the DataCacheFactory and DataCache classes. Nella Cache Redis di Azure queste connessioni sono gestite dalla classe ConnectionMultiplexer .In Azure Redis Cache, these connections are managed by the ConnectionMultiplexer class.

Aggiungere l'istruzione using seguente nella parte superiore di ogni file da cui si vuole accedere alla cache.Add the following using statement to the top of any file from which you want to access the cache.

using StackExchange.Redis

Se questo spazio dei nomi non viene risolto, verificare di avere aggiunto il pacchetto NuGet StackExchange.Redis, come descritto in Configurare i client della cache.If this namespace doesn’t resolve, be sure that you have added the StackExchange.Redis NuGet package as described in Configure the cache clients.

Nota

Tenere presente che con il client StackExchange.Redis è richiesto .NET Framework 4 o versione successiva.Note that the StackExchange.Redis client requires .NET Framework 4 or higher.

Per connettersi a un'istanza della Cache Redis di Azure, chiamare il metodo statico ConnectionMultiplexer.Connect e passare l'endpoint e la chiave.To connect to an Azure Redis Cache instance, call the static ConnectionMultiplexer.Connect method and pass in the endpoint and key. Un approccio per la condivisione di un'istanza di ConnectionMultiplexer nell'applicazione prevede una proprietà statica che restituisce un'istanza connessa, simile a quanto illustrato nell'esempio seguente.One approach to sharing a ConnectionMultiplexer instance in your application is to have a static property that returns a connected instance, similar to the following example. Questo costituisce un modo thread-safe per inizializzare solo una singola istanza di ConnectionMultiplexer connessa.This provides a thread-safe way to initialize only a single connected ConnectionMultiplexer instance. In questo esempio la proprietà abortConnect è impostata su false, a indicare che la chiamata riuscirà anche se non viene stabilita una connessione alla cache.In this example abortConnect is set to false, which means that the call will succeed even if a connection to the cache is not established. Una delle funzionalità principali di ConnectionMultiplexer è il ripristino automatico della connettività alla cache non appena l'errore di rete o eventuali altri problemi vengono risolti.One key feature of ConnectionMultiplexer is that it will automatically restore connectivity to the cache once the network issue or other causes are resolved.

private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
    return ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net,abortConnect=false,ssl=true,password=...");
});

public static ConnectionMultiplexer Connection
{
    get
    {
        return lazyConnection.Value;
    }
}

L'endpoint, le chiavi e le porte della cache sono disponibili nel pannello Cache Redis dell'istanza della cache.The cache endpoint, keys, and ports can be obtained from the Redis Cache blade for your cache instance. Per altre informazioni, vedere Proprietà di Cache Redis.For more information, see Redis Cache properties.

Dopo avere stabilito la connessione, restituire un riferimento al database di Cache Redis chiamando il metodo ConnectionMultiplexer.GetDatabase .Once the connection is established, return a reference to the Redis cache database by calling the ConnectionMultiplexer.GetDatabase method. L’oggetto restituito dal metodo GetDatabase è un oggetto pass-through leggero che non è necessario archiviare.The object returned from the GetDatabase method is a lightweight pass-through object and does not need to be stored.

IDatabase cache = Connection.GetDatabase();

// Perform cache operations using the cache object...
// Simple put of integral data types into the cache
cache.StringSet("key1", "value");
cache.StringSet("key2", 25);

// Simple get of data types from the cache
string key1 = cache.StringGet("key1");
int key2 = (int)cache.StringGet("key2");

Il client StackExchange.Redis usa i tipi RedisKey e RedisValue per accedere agli elementi e archiviarli nella cache.The StackExchange.Redis client uses the RedisKey and RedisValue types for accessing and storing items in the cache. Questi tipi eseguono il mapping ai tipi di linguaggio più primitivi, incluse le stringhe, e spesso non vengono usati direttamente.These types map onto most primitive language types, including string, and often are not used directly. Le stringhe di Redis sono la tipologia più semplice di valore Redis e possono contenere diversi tipi di dati, inclusi i flussi binari serializzati, e, anche se non è possibile usare il tipo direttamente, si useranno metodi contenenti String nel nome.Redis Strings are the most basic kind of Redis value, and can contain many types of data, including serialized binary streams, and while you may not use the type directly, you will use methods that contain String in the name. Per i tipi di dati più primitivi, gli elementi vengono archiviati e recuperati nella cache usando i metodi StringSet e StringGet, a meno che non si debbano archiviare raccolte o altri tipi di dati Redis nella cache.For most primitive data types you store and retrieve items from the cache using the StringSet and StringGet methods, unless you are storing collections or other Redis data types in the cache.

StringSet e StringGet sono molto simili ai metodi Put e Get del Servizio cache gestita, con l'importante differenza che, prima di impostare e ottenere un oggetto .NET nella cache, è necessario serializzarlo.StringSet and StringGet are very similar to the Managed Cache Service Put and Get methods, with one major difference being that before you set and get a .NET object into the cache you must serialize it first.

Quando si chiama StringGet, viene restituito l'oggetto, se esistente; in caso contrario, viene restituito Null.When calling StringGet, if the object exists, it is returned, and if it does not, null is returned. In questo caso è possibile recuperare il valore dall'origine dati desiderata e memorizzarlo nella cache per usarlo in seguito.In this case you can retrieve the value from the desired data source and store it in the cache for subsequent use. Questa operazione è nota come modello cache-aside.This is known as the cache-aside pattern.

Per specificare la scadenza di un elemento nella cache, usare il parametro TimeSpan di StringSet.To specify the expiration of an item in the cache, use the TimeSpan parameter of StringSet.

cache.StringSet("key1", "value1", TimeSpan.FromMinutes(90));

Cache Redis di Azure può usare sia oggetti .NET che tipi di dati primitivi, ma prima della memorizzazione nella cache un oggetto .NET deve essere serializzato.Azure Redis Cache can work with .NET objects as well as primitive data types, but before a .NET object can be cached it must be serialized. Questa operazione spetta allo sviluppatore dell'applicazione.This is the responsibility of the application developer. In questo modo lo sviluppatore può scegliere il serializzatore che preferisce.This gives the developer flexibility in the choice of the serializer. Per altre informazioni e per il codice di esempio, vedere Gestire gli oggetti .NET nella cache.For more information and sample code, see Work with .NET objects in the cache.

Eseguire la migrazione dello stato della sessione ASP.NET e della memorizzazione nella cache di output alla Cache Redis di AzureMigrate ASP.NET Session State and Output caching to Azure Redis Cache

La Cache Redis di Azure include provider sia per lo stato della sessione ASP.NET che per la memorizzazione nella cache dell'output delle pagine.Azure Redis Cache has providers for both ASP.NET Session State and Page Output caching. Per eseguire la migrazione dell'applicazione che usa le versioni del Servizio cache gestita di questi provider, rimuovere prima le sezioni esistenti dal file web.config e quindi configurare le versioni della Cache Redis di Azure dei provider.To migrate your application that uses the Managed Cache Service versions of these providers, first remove the existing sections from your web.config, and then configure the Azure Redis Cache versions of the providers. Per istruzioni sull'uso dei provider ASP.NET della Cache Redis di Azure, vedere Provider di stato della sessione ASP.NET per Cache Redis di Azure e Provider di cache di output ASP.NET per la Cache Redis di Azure.For instructions on using the Azure Redis Cache ASP.NET providers, see ASP.NET Session State Provider for Azure Redis Cache and ASP.NET Output Cache Provider for Azure Redis Cache.

Passaggi successiviNext steps

Per esercitazioni, esempi, video e altro ancora, vedere la documentazione sulla Cache Redis di Azure .Explore the Azure Redis Cache documentation for tutorials, samples, videos, and more.