ASP.NET-Ausgabecacheanbieter für Azure Cache for RedisASP.NET Output Cache Provider for Azure Cache for Redis

Der Redis-Ausgabecacheanbieter ist ein prozessunabhängiger Speichermechanismus für Ausgabecachedaten.The Redis Output Cache Provider is an out-of-process storage mechanism for output cache data. Diese Daten sind für vollständige HTTP-Antworten bestimmt (Zwischenspeichern von Seitenausgaben).This data is specifically for full HTTP responses (page output caching). Der Anbieter wird zum neuen Erweiterungspunkt des Ausgabecacheanbieters hinzugefügt, der in ASP.NET 4 eingeführt wurde.The provider plugs into the new output cache provider extensibility point that was introduced in ASP.NET 4.

Zum Verwenden des Redis-Ausgabecacheanbieters konfigurieren Sie zunächst den Cache. Danach konfigurieren Sie Ihre ASP.NET-Anwendung mithilfe des Redis-Ausgabecacheanbieter-NuGet-Pakets.To use the Redis Output Cache Provider, first configure your cache, and then configure your ASP.NET application using the Redis Output Cache Provider NuGet package. In diesem Thema wird erläutert, wie Sie Ihre Anwendung für die Verwendung des Redis-Ausgabecacheanbieters konfigurieren.This topic provides guidance on configuring your application to use the Redis Output Cache Provider. Informationen über das Erstellen und Konfigurieren einer Azure Cache for Redis-Instanz finden Sie unter Erstellen eines Caches.For more information about creating and configuring an Azure Cache for Redis instance, see Create a cache.

Speichern der ASP.NET-Seitenausgabe im CacheStore ASP.NET page output in the cache

Klicken Sie zum Konfigurieren einer Clientanwendung in Visual Studio mit dem Azure Cache for Redis-Sitzungszustands-NuGet-Paket im Menü Extras auf NuGet-Paket-Manager > Paket-Manager-Konsole.To configure a client application in Visual Studio using the Azure Cache for Redis Session State NuGet package, click NuGet Package Manager, Package Manager Console from the Tools menu.

Führen Sie im Fenster Package Manager Console den folgenden Befehl aus.Run the following command from the Package Manager Console window.

Install-Package Microsoft.Web.RedisOutputCacheProvider

Das Redis-Ausgabecacheanbieter-NuGet-Paket steht in einer Abhängigkeitsbeziehung zum Paket „StackExchange.Redis.StrongName“.The Redis Output Cache Provider NuGet package has a dependency on the StackExchange.Redis.StrongName package. Wenn das Paket „StackExchange.Redis.StrongName“ nicht in Ihrem Projekt vorhanden ist, wird es installiert.If the StackExchange.Redis.StrongName package is not present in your project, it is installed. Weitere Informationen zum Redis-Ausgabecacheanbieter-NuGet-Paket finden Sie auf der NuGet-Seite RedisOutputCacheProvider.For more information about the Redis Output Cache Provider NuGet package, see the RedisOutputCacheProvider NuGet page.

Hinweis

Neben dem Paket „StackExchange.Redis.StrongName“ mit starkem Namen gibt es zudem noch das Paket „StackExchange.Redis“ als Version ohne starken Namen.In addition to the strong-named StackExchange.Redis.StrongName package, there is also the StackExchange.Redis non-strong-named version. Wenn in Ihrem Projekt die Version „StackExchange.Redis“ ohne starken Namen verwendet wird, müssen Sie sie deinstallieren. Andernfalls treten Namenskonflikte in Ihrem Projekt auf.If your project is using the non-strong-named StackExchange.Redis version you must uninstall it; otherwise, you will experience naming conflicts in your project. Weitere Informationen über diese Pakete finden Sie unter Konfigurieren der .NET-Cacheclients.For more information about these packages, see Configure .NET cache clients.

Mit dem heruntergeladenen NuGet-Paket werden die erforderlichen Assemblyverweise sowie der folgende Abschnitt in Ihrer Datei „web.config“ hinzugefügt.The NuGet package downloads and adds the required assembly references and adds the following section into your web.config file. Dieser Abschnitt enthält die Konfiguration, die in Ihrer ASP.NET-Anwendung für die Verwendung des Redis-Ausgabecacheanbieters erforderlich ist.This section contains the required configuration for your ASP.NET application to use the Redis Output Cache Provider.

<caching>
  <outputCache defaultProvider="MyRedisOutputCache">
    <providers>
      <add name="MyRedisOutputCache" type="Microsoft.Web.Redis.RedisOutputCacheProvider"
           host=""
           accessKey=""
           ssl="true" />
    </providers>
  </outputCache>
</caching>

Konfigurieren Sie die Attribute mit den Werten vom Blatt „Cache“ im Microsoft Azure-Portal, und konfigurieren Sie die restlichen Werte wie gewünscht.Configure the attributes with the values from your cache blade in the Microsoft Azure portal, and configure the other values as desired. Anweisungen zum Zugreifen auf die Cacheeigenschaften finden Sie unter Konfigurieren von Azure Cache for Redis-Einstellungen.For instructions on accessing your cache properties, see Configure Azure Cache for Redis settings.

attributeAttribute typeType StandardDefault BESCHREIBUNGDescription
hosthost stringstring „localhost“"localhost" IP-Adresse oder Hostname des Redis-ServersThe Redis server IP address or host name
portport Positive Ganzzahlpositive integer 6379 (non-SSL)6379 (non-SSL)
6380 (SSL)6380 (SSL)
Redis-ServerportRedis server port
accessKeyaccessKey stringstring """" Redis-Serverkennwort, wenn Redis-Autorisierung aktiviert ist.Redis server password when Redis authorization is enabled. Der Wert ist standardmäßig eine leere Zeichenfolge, was bedeutet, dass der Sitzungszustandsanbieter kein Kennwort verwenden wird, wenn eine Verbindung mit dem Redis-Server hergestellt wird.The value is empty string by default, which means the session state provider won’t use any password when connecting to Redis server. Wenn sich Ihr Redis-Server in einem öffentlich zugänglichen Netzwerk wie Azure Redis Cache befindet, denken Sie daran, die Redis-Autorisierung zu aktivieren, um die Sicherheit zu erhöhen, und ein sicheres Kennwort anzugeben.If your Redis server is in a publicly accessible network like Azure Redis Cache, be sure to enable Redis authorization to improve security, and provide a secure password.
sslssl booleanboolean falsefalse Ob die Verbindung mit dem Redis-Server über SSL erfolgen soll.Whether to connect to Redis server via SSL. Dieser Wert ist standardmäßig false, weil Redis SSL nicht bereits vorkonfiguriert unterstützt.This value is false by default because Redis doesn’t support SSL out of the box. Bei Verwendung von Azure Redis Cache, der SSL bereits vorkonfiguriert unterstützt, stellen Sie sicher, dass Sie diese auf „true“ festlegen, um die Sicherheit zu erhöhen.If you are using Azure Redis Cache which supports SSL out of the box, be sure to set this to true to improve security.

Der Nicht-SSL-Port ist für neue Caches standardmäßig deaktiviert.The non-SSL port is disabled by default for new caches. Geben Sie für diese Einstellung true an, wenn Sie den SSL-Port verwenden möchten.Specify true for this setting to use the SSL port. Weitere Informationen zum Aktivieren des Nicht-SSL-Ports finden Sie im Abschnitt Zugriffsports des Themas Konfigurieren eines Caches.For more information about enabling the non-SSL port, see the Access Ports section in the Configure a cache topic.
databaseIdNumberdatabaseIdNumber Positive Ganzzahlpositive integer 00 Dieses Attribut kann nur entweder über „web.config“ oder über „appSettings“ angegeben werden.This attribute can be specified only through either web.config or AppSettings.

Geben Sie an, welche Redis-Datenbank verwendet werden soll.Specify which Redis database to use.
connectionTimeoutInMillisecondsconnectionTimeoutInMilliseconds Positive Ganzzahlpositive integer Wird von „StackExchange.Redis“ angegeben.Provided by StackExchange.Redis Wird zum Festlegen von ConnectTimeout verwendet, wenn „StackExchange.Redis.ConnectionMultiplexer“ erstellt wird.Used to set ConnectTimeout when creating StackExchange.Redis.ConnectionMultiplexer.
operationTimeoutInMillisecondsoperationTimeoutInMilliseconds Positive Ganzzahlpositive integer Wird von „StackExchange.Redis“ angegeben.Provided by StackExchange.Redis Wird zum Festlegen von SyncTimeout verwendet, wenn „StackExchange.Redis.ConnectionMultiplexer“ erstellt wird.Used to set SyncTimeout when creating StackExchange.Redis.ConnectionMultiplexer.
connectionString (Gültige Verbindungszeichenfolge für „StackExchange.Redis“)connectionString (Valid StackExchange.Redis connection string) stringstring Nicht zutreffendn/a Entweder ein Parameterverweis auf „appSettings“ oder auf „Web.config“ oder sonst eine gültige Verbindungszeichenfolge für „StackExchange.Redis“.Either a parameter reference to AppSettings or web.config, or else a valid StackExchange.Redis connection string. Dieses Attribut kann die Werte für host, port, accessKey, ssl und andere Attribute von „StackExchange.Redis“ bereitstellen.This attribute can provide values for host, port, accessKey, ssl, and other StackExchange.Redis attributes. Ausführlichere Informationen zu connectionString finden Sie unter Festlegen von „connectionString“ im Abschnitt Hinweise zu Attributen.For a closer look at connectionString, see Setting connectionString in the Attribute notes section.
settingsClassNamesettingsClassName
settingsMethodNamesettingsMethodName
stringstring
stringstring
Nicht zutreffendn/a Diese Attribute können nur entweder über „web.config“ oder über „appSettings“ angegeben werden.These attributes can be specified only through either web.config or AppSettings.

Verwenden Sie diese Attribute, um eine Verbindungszeichenfolge bereitzustellen.Use these attributes to provide a connection string. settingsClassName sollte ein Assembly-qualifizierter Klassenname sein, der die von settingsMethodName angegebene Methode enthält.settingsClassName should be an assembly qualified class name that contains the method specified by settingsMethodName.

Die von settingsMethodName angegebene Methode sollte öffentlich, statisch und „void“ (keine Parameter akzeptieren) sein, mit dem Rückgabetyp string.The method specified by settingsMethodName should be public, static, and void (not take any parameters), with a return type of string. Diese Methode gibt die tatsächliche Verbindungszeichenfolge zurück.This method returns the actual connection string.
loggingClassNameloggingClassName
loggingMethodNameloggingMethodName
stringstring
stringstring
Nicht zutreffendn/a Diese Attribute können nur entweder über „web.config“ oder über „appSettings“ angegeben werden.These attributes can be specified only through either web.config or AppSettings.

Verwenden Sie diese Attribute, um Ihre Anwendung zu debuggen, indem Sie Protokolle aus dem Sitzungszustands-/Ausgabecache zusammen mit Protokollen aus „StackExchange.Redis“ bereitstellen.Use these attributes to debug your application by providing logs from Session State/Output Cache along with logs from StackExchange.Redis. loggingClassName sollte ein Assembly-qualifizierter Klassenname sein, der die von loggingMethodName angegebene Methode enthält.loggingClassName should be an assembly qualified class name that contains the method specified by loggingMethodName.

Die von loggingMethodName angegebene Methode sollte öffentlich, statisch und „void“ (keine Parameter akzeptieren) sein, mit dem Rückgabetyp System.IO.TextWriter.The method specified by loggingMethodName should be public, static, and void (not take any parameters), with a return type of System.IO.TextWriter.
applicationNameapplicationName stringstring Der Modulname des aktuellen Prozesses oder „/“The module name of the current process or "/" Nur SessionStateProviderSessionStateProvider only
Dieses Attribut kann nur entweder über „web.config“ oder über „appSettings“ angegeben werden.This attribute can be specified only through either web.config or AppSettings.

Das in Redis Cache zu verwendende App-Namenspräfix.The app name prefix to use in Redis cache. Der Kunde kann denselben Redis Cache für unterschiedliche Zwecke verwenden.The customer may use the same Redis cache for different purposes. Um sicherzustellen, dass bei den Sitzungsschlüsseln kein Konflikt entsteht, kann ihm der Name der Anwendung als Präfix vorangestellt werden.To insure that the session keys do not collide, it can be prefixed with the application name.
throwOnErrorthrowOnError booleanboolean truetrue Nur SessionStateProviderSessionStateProvider only
Dieses Attribut kann nur entweder über „web.config“ oder über „appSettings“ angegeben werden.This attribute can be specified only through either web.config or AppSettings.

Ob eine Ausnahme ausgelöst werden soll, wenn ein Fehler auftritt.Whether to throw an exception when an error occurs.

Weitere Informationen zu throwOnError finden Sie unter Hinweise zu throwOnError im Abschnitt Hinweise zu Attributen.For more about throwOnError, see Notes on throwOnError in the Attribute notes section.
>Microsoft.Web.Redis.RedisSessionStateProvider.LastException.>Microsoft.Web.Redis.RedisSessionStateProvider.LastException.
retryTimeoutInMillisecondsretryTimeoutInMilliseconds Positive Ganzzahlpositive integer 5.0005000 Nur SessionStateProviderSessionStateProvider only
Dieses Attribut kann nur entweder über „web.config“ oder über „appSettings“ angegeben werden.This attribute can be specified only through either web.config or AppSettings.

Wie lange wiederholt werden soll, wenn ein Vorgang fehlschlägt.How long to retry when an operation fails. Wenn dieser Wert kleiner als operationTimeoutInMilliseconds ist, versucht es der Anbieter nicht noch mal.If this value is less than operationTimeoutInMilliseconds, the provider will not retry.

Weitere Informationen zu retryTimeoutInMilliseconds finden Sie unter Hinweise zu retryTimeoutInMilliseconds im Abschnitt Hinweise zu Attributen.For more about retryTimeoutInMilliseconds, see Notes on retryTimeoutInMilliseconds in the Attribute notes section.
redisSerializerTyperedisSerializerType stringstring Nicht zutreffendn/a Gibt den Assembly-qualifizierten Typnamen einer Klasse an, die „Microsoft.Web.Redis“ implementiert.Specifies the assembly qualified type name of a class that implements Microsoft.Web.Redis. ISerializer, und dieser enthält die benutzerdefinierte Logik zum Serialisieren und Deserialisieren der Werte.ISerializer and that contains the custom logic to serialize and deserialize the values. Weitere Informationen finden Sie unter Informationen zu redisSerializerType im Abschnitt Hinweise zu Attributen.For more information, see About redisSerializerType in the Attribute notes section.

Hinweise zu AttributenAttribute notes

Festlegen von connectionStringSetting connectionString

Der Wert von connectionString wird als Schlüssel verwendet, um die tatsächliche Verbindungszeichenfolge von „AppSettings“ abzurufen, wenn solch eine Zeichenfolge in „AppSettings“ vorhanden ist.The value of connectionString is used as key to fetch the actual connection string from AppSettings, if such a string exists in AppSettings. Wenn sie nicht in „AppSettings“ gefunden wird, wird der Wert von connectionString als Schlüssel verwendet, um die tatsächliche Verbindungszeichenfolge aus dem Abschnitt ConnectionString der Datei „web.config“ abzurufen, wenn dieser Abschnitt vorhanden ist.If not found inside AppSettings, the value of connectionString will be used as key to fetch actual connection string from the web.config ConnectionString section, if that section exists. Wenn die Verbindungszeichenfolge weder in „AppSettings“ noch im Abschnitt ConnectionString von „web.config“ vorhanden ist, wird der Literalwert von connectionString als Verbindungszeichenfolge erstellt, wenn „StackExchange.Redis.ConnectionMultiplexer“ erstellt wird.If the connection string does not exists in AppSettings or the web.config ConnectionString section, the literal value of connectionString will be used as the connection string when creating StackExchange.Redis.ConnectionMultiplexer.

Die folgenden Beispiele veranschaulichen, wie connectionString verwendet wird.The following examples illustrate how connectionString is used.

Beispiel 1Example 1

<connectionStrings>
    <add name="MyRedisConnectionString" connectionString="mycache.redis.cache.windows.net:6380,password=actual access key,ssl=True,abortConnect=False" />
</connectionStrings>

Verwenden Sie in web.config den oben stehenden Schlüssel als Parameterwert anstelle des tatsächlichen Werts.In web.config, use above key as parameter value instead of actual value.

<sessionState mode="Custom" customProvider="MySessionStateStore">
    <providers>
        <add type = "Microsoft.Web.Redis.RedisSessionStateProvide"
             name = "MySessionStateStore"
             connectionString = "MyRedisConnectionString"/>
    </providers>
</sessionState>

Beispiel 2Example 2

<appSettings>
    <add key="MyRedisConnectionString" value="mycache.redis.cache.windows.net:6380,password=actual access key,ssl=True,abortConnect=False" />
</appSettings>

Verwenden Sie in web.config den oben stehenden Schlüssel als Parameterwert anstelle des tatsächlichen Werts.In web.config, use above key as parameter value instead of actual value.

<sessionState mode="Custom" customProvider="MySessionStateStore">
    <providers>
        <add type = "Microsoft.Web.Redis.RedisSessionStateProvide"
             name = "MySessionStateStore"
             connectionString = "MyRedisConnectionString"/>
    </providers>
</sessionState>

Beispiel 3Example 3

<sessionState mode="Custom" customProvider="MySessionStateStore">
    <providers>
        <add type = "Microsoft.Web.Redis.RedisSessionStateProvide"
             name = "MySessionStateStore"
             connectionString = "mycache.redis.cache.windows.net:6380,password=actual access key,ssl=True,abortConnect=False"/>
    </providers>
</sessionState>

Hinweise zu throwOnErrorNotes on throwOnError

Zurzeit löst der Sitzungszustandsanbieter, wenn während eines Sitzungsvorgangs ein Fehler auftritt, eine Ausnahme aus.Currently, if an error occurs during a session operation, the session state provider will throw an exception. Hierdurch wird die Anwendung geschlossen.This shuts down the application.

Dieses Verhalten wurde in einer Weise geändert, die die Erwartungen der Benutzer von vorhandenen ASP.NET-Sitzungszustandsanbieter erfüllt und gleichzeitig die Möglichkeit bietet, auf Ausnahmen zu reagieren, falls erwünscht.This behavior has been modified in a way that supports the expectations of existing ASP.NET session state provider users while also providing the ability to act on exceptions, if desired. Beim Standardverhalten wird immer noch eine Ausnahme ausgelöst, wenn ein Fehler auftritt, der mit anderen ASP.NET-Sitzungsstatusanbietern konsistent ist. Vorhandener Code sollte exakt wie zuvor funktionieren.The default behavior still throws an exception when an error occurs, consistent with other ASP.NET session state providers; existing code should work the same as before.

Wenn Sie throwOnError auf false festlegen, schlägt es ohne Meldung fehl, anstatt eine Ausnahme auszulösen, wenn ein Fehler auftritt.If you set throwOnError to false, then instead of throwing an exception when an error occurs, it will fail silently. Um festzustellen, ob ein Fehler aufgetreten ist, und wenn dies der Fall war, um die Ausnahme zu ermitteln, überprüfen Sie die statische Eigenschaft Microsoft.Web.Redis.RedisSessionStateProvider.LastException.To see if there was an error and, if so, discover what the exception was, check the static property Microsoft.Web.Redis.RedisSessionStateProvider.LastException.

Hinweise zu retryTimeoutInMillisecondsNotes on retryTimeoutInMilliseconds

Hierdurch wird einer Wiederholungslogik bereitgestellt, um den Fall zu vereinfachen, in dem ein Sitzungsvorgang bei einem Fehler aufgrund von Vorfällen wie einer Netzwerkstörung wiederholt werden sollte, während Ihnen gleichzeitig die Möglichkeit geboten werden soll, den Wiederholungstimeout zu kontrollieren bzw. das Wiederholen vollständig zu deaktivieren.This provides some retry logic to simplify the case where some session operation should retry on failure because of things like network glitch, while also allowing you to control the retry timeout or opt out of retry entirely.

Wenn Sie retryTimeoutInMilliseconds auf eine Zahl, z. B. 2000, festlegen, wird ein Sitzungsvorgang, wenn er fehlschlägt, 2000 Millisekunden lang wiederholt, bevor er als Fehler behandelt wird.If you set retryTimeoutInMilliseconds to a number, for example 2000, then when a session operation fails, it will retry for 2000 milliseconds before treating it as an error. Damit also der Sitzungszustandsanbieter diese Wiederholungslogik anwendet, konfigurieren Sie lediglich den Timeout.So to have the session state provider to apply this retry logic, just configure the timeout. Der erste Wiederholungsversuch erfolgt nach 20 Millisekunden, was in den meisten Fällen ausreichend ist, wenn eine Netzwerkstörung auftritt.The first retry will happen after 20 milliseconds, which is sufficient in most cases when a network glitch happens. Anschließend wird der Vorgang jede Sekunde wiederholt, bis der Timeout eintritt. Direkt nach dem Timeout erfolgt noch eine einzige Wiederholung, um sicherzustellen, dass der Timeout nicht um (höchstens) eine Sekunde abgeschnitten wird.After that, it will retry every second until it times out. Right after the time out, it will retry one more time to make sure that it won’t cut off the timeout by (at most) one second.

Wenn Sie denken, dass Sie keine Wiederholung benötigen (z. B. wenn Sie den Redis Server auf demselben Computer wie Ihre Anwendung ausführen), oder wenn Sie die Wiederholungslogik selbst verarbeiten möchten, legen Sie retrytimeoutinmilliseconds auf 0 fest.If you don’t think you need retry (for example, when you are running the Redis server on the same machine as your application) or if you want to handle the retry logic yourself, set retryTimeoutInMilliseconds to 0.

Informationen zu redisSerializerTypeAbout redisSerializerType

Standardmäßig erfolgt die Serialisierung, um die Werte in Redis zu speichern, in einem binären Format, das von der Klasse BinaryFormatter bereitgestellt wird.By default, the serialization to store the values on Redis is done in a binary format provided by the BinaryFormatter class. Verwenden Sie redisSerializerType, um den Assembly-qualifizierten Typnamen einer Klasse anzugeben, die Microsoft.Web.Redis.ISerializer implementiert und die benutzerdefinierte Logik zum Serialisieren und Deserialisieren der Werte besitzt.Use redisSerializerType to specify the assembly qualified type name of a class that implements Microsoft.Web.Redis.ISerializer and has the custom logic to serialize and deserialize the values. Hier sehen Sie z. B. eine Json-Serialisiererklasse, die JSON.NET verwendet:For example, here is a Json serializer class using JSON.NET:

namespace MyCompany.Redis
{
    public class JsonSerializer : ISerializer
    {
        private static JsonSerializerSettings _settings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.All };

        public byte[] Serialize(object data)
        {
            return Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data, _settings));
        }

        public object Deserialize(byte[] data)
        {
            if (data == null)
            {
                return null;
            }
            return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(data), _settings);
        }
    }
}

Unter der Voraussetzung, dass diese Klasse in einer Assembly mit dem Namen MyCompanyDll definiert ist, können Sie den Parameter redisSerializerType festlegen, um sie zu verwenden:Assuming this class is defined in an assembly with name MyCompanyDll, you can set the parameter redisSerializerType to use it:

<sessionState mode="Custom" customProvider="MySessionStateStore">
    <providers>
        <add type = "Microsoft.Web.Redis.RedisSessionStateProvider"
             name = "MySessionStateStore"
             redisSerializerType = "MyCompany.Redis.JsonSerializer,MyCompanyDll"
             ... />
    </providers>
</sessionState>

OutputCache-DirektiveOutput cache directive

Fügen Sie jeder Seite, für die Sie die Ausgabe zwischenspeichern möchten, eine OutputCache-Direktive hinzu.Add an OutputCache directive to each page for which you wish to cache the output.

<%@ OutputCache Duration="60" VaryByParam="*" %>

Im vorherigen Beispiel verbleiben die zwischengespeicherten Seitendaten 60 Sekunden lang im Cache. Für jede Parameterkombination wird eine andere Version der Seite zwischengespeichert.In the previous example, the cached page data remains in the cache for 60 seconds, and a different version of the page is cached for each parameter combination. Weitere Informationen über die OutputCache-Direktive finden Sie unter @OutputCache.For more information about the OutputCache directive, see @OutputCache.

Nach Abschluss dieser Schritte ist Ihre Anwendung für die Verwendung des Redis-Ausgabecacheanbieters konfiguriert.Once these steps are performed, your application is configured to use the Redis Output Cache Provider.

Nächste SchritteNext steps

Lesen Sie die Seite ASP.NET-Sitzungszustandsanbieter für Azure Cache for Redis.Check out the ASP.NET Session State Provider for Azure Cache for Redis.