Häufig gestellte Fragen zur Azure Cache for Redis-Entwicklung

Dieser Artikel bietet Antworten auf häufig gestellte Fragen zur Entwicklung für Azure Cache for Redis.

Wie kann ich mit Azure Cache for Redis starten?

Es gibt verschiedene Möglichkeiten, mit Azure Cache for Redis zu starten.

Wenn Sie noch kein Azure-Konto besitzen, haben Sie folgende Möglichkeiten:

  • Kostenloses Anlegen eines Azure-Kontos. Sie erhalten ein Guthaben, mit dem Sie andere kostenpflichtige Azure-Dienste ausprobieren können. Auch nachdem Sie das Guthaben aufgebraucht haben, können Sie das Konto behalten und kostenlose Azure-Dienste und -Features nutzen.
  • Aktivieren Sie Visual Studio-Abonnementvorteile. Ihr MSDN-Abonnement beinhaltet ein monatliches Guthaben, das Sie für zahlungspflichtige Azure-Dienste verwenden können.

Was bewirken die Konfigurationsoptionen für "StackExchange.Redis"?

Für "StackExchange.Redis" stehen zahlreiche Optionen zur Verfügung. In diesem Abschnitt werden einige der gängigsten Optionen erläutert. Ausführlichere Informationen zu den StackExchange.Redis-Optionen finden Sie unter StackExchange.Redis-Konfiguration.

ConfigurationOptions BESCHREIBUNG Empfehlung
AbortOnConnectFail Wenn Sie diese Option auf „true“ festlegen, kann die Verbindung nach einem Netzwerkausfall nicht wiederhergestellt werden. Bei Festlegung auf "false" kann "StackExchange.Redis" die Verbindung automatisch wiederherstellen.
ConnectRetry Die Anzahl von Versuchen für die Verbindungsherstellung bei der anfänglichen Verbindung. Die folgenden Informationen bieten eine Orientierung.
ConnectTimeout Timeout in Millisekunden für Verbindungsvorgänge. Die folgenden Informationen bieten eine Orientierung.

In der Regel reichen die Standardwerte des Clients aus. Sie können die Optionen basierend auf Ihrer Workload optimieren.

Wiederholungsversuche

  • Für „ConnectRetry“ und „ConnectTimeout“ lautet die allgemeine Empfehlung, Fail-Fast-fähig zu sein und den Vorgang zu wiederholen. Diese Empfehlung hängt von Ihrer Workload und davon ab, wie lange es auf Ihrem Client (im Durchschnitt) dauert, einen Redis-Befehl auszuführen und eine Antwort zu erhalten.
  • Ermöglichen Sie eine automatische Neuverbindung durch "StackExchange.Redis", statt die Prüfung des Verbindungsstatus und die erneute Verbindungsherstellung selbst zu prüfen. Vermeiden Sie die Verwendung der ConnectionMultiplexer.IsConnected-Eigenschaft.
  • Schneeballeffekt: Ggf. kann ein Problem auftreten, bei dem Wiederholungsversuche zu einem Schneeballeffekt führen, der sich nicht stoppen lässt. Erwägen Sie beim Auftreten dieses Schneeballeffekts die Verwendung eines Wiederholungsalgorithmus vom Typ „Exponentielles Backoff“. Dies ist im allgemeinen Leitfaden zum Wiederholen von Vorgängen der Microsoft Patterns & Practices-Gruppe beschrieben.

Timeoutwerte

  • Legen Sie die Werte unter Berücksichtigung Ihrer Workload entsprechend fest. Legen Sie die Timeouteinstellung auf einen höheren Wert fest, wenn Sie große Werte speichern.

  • Legen Sie AbortOnConnectFail auf „false“ fest, und überlassen Sie StackExchange.Redis die erneute Verbindungsherstellung.

  • Verwenden Sie eine einzelne, langlebige ConnectionMultiplexer-Instanz, anstatt eine neue Verbindung für jede Anforderung zu erstellen. Ein Beispiel für das Verwalten einer Verbindung finden Sie unter der RedisConnection-Klasse in Verbinden mit dem Cache mit RedisConnection.

  • Legen Sie die ConnectionMultiplexer.ClientName -Eigenschaft zu Diagnosezwecken auf einen eindeutigen App-Instanznamen fest.

  • Verwenden Sie für benutzerdefinierte Workloads mehrere ConnectionMultiplexer -Instanzen.

    Sie können dieses Modell befolgen, wenn die Lasten in Ihrer Anwendung variieren. Zum Beispiel:

    • Sie können einen Multiplexer zur Verarbeitung großer Schlüssel verwenden.
    • Sie können einen Multiplexer zur Verarbeitung kleiner Schlüssel verwenden.
    • Sie können verschiedene Werte für Verbindungstimeouts und eine Wiederholungslogik für jeden verwendeten ConnectionMultiplexer anwenden.
    • Legen Sie die ClientName -Eigenschaft für jeden Multiplexer fest, um die Diagnose zu vereinfachen.

    Der folgende Leitfaden kann zu einer optimierten Latenz pro ConnectionMultiplexer führen.

Welche Azure Cache for Redis-Clients kann ich verwenden?

Einer der großen Vorteile von Redis ist, dass es viele Clients gibt, die viele verschiedene Programmiersprachen unterstützen. Eine aktuelle Liste von Clients finden Sie unter Redis-Clients. Informationen zu Tutorials, die mehrere unterschiedliche Sprachen und Clients abdecken, finden Sie unter Schnellstart: Verwenden von Azure Cache for Redis mit .NET Framework.

Abrufen des Hostnamens, der Ports und des Zugriffsschlüssels

Um Ihren Azure Cache for Redis-Server zu verbinden, benötigt der Cacheclient den Hostnamen, die Ports und einen Zugriffsschlüssel. Einige Clients verweisen möglicherweise auf diese Elemente, indem sie geringfügig andere Namen verwenden. Sie finden Hostname, Ports und Schlüssel im Azure-Portal.

  • So rufen Sie einen Zugriffsschlüssel für Ihren Cache ab

    1. Navigieren Sie im Azure-Portal zu Ihrem Cache.
    2. Wählen Sie im Menü „Dienst“ unter Einstellungen die Option Authentifizierung aus.
    3. Wählen Sie im Bereich Authentifizierung die Registerkarte Zugriffsschlüssel aus.
    4. Um den Wert für einen Zugriffsschlüssel zu kopieren, wählen Sie im Feld „Schlüssel“ das Symbol Kopieren aus.

    Screenshot der Suche nach einem Zugriffsschlüssel für eine Instanz von Azure Cache for Redis zum Kopieren

  • So rufen Sie den Hostnamen und die Ports für Ihren Cache ab

    1. Navigieren Sie im Azure-Portal zu Ihrem Cache.
    2. Wählen Sie im Menü „Dienst“ die Option Übersicht aus.
    3. Wählen Sie unter Grundlagen für den Hostnamen das Symbol Kopieren aus, um den Hostnamenwert zu kopieren. Der Hostnamenwert weist das Format <DNS name>.redis.cache.windows.net auf.
    4. Wählen Sie für Ports das Symbol Kopieren aus, um die Portwerte zu kopieren.

    Screenshot der Suche nach dem Hostnamen und den Ports für eine Instanz von Azure Cache for Redis zum Kopieren

Gibt es einen lokalen Emulator für Azure Cache for Redis?

Es gibt keinen lokalen Emulator für Azure Cache for Redis. Sie können jedoch eine Kopie von Community Redis auf Ihrem lokalen Computer ausführen und eine Verbindung damit herstellen, um eine ähnliche Erfahrung mit einem lokalen Cache-Emulator zu erhalten, wie im folgenden Beispiel gezeigt:

private static Lazy<ConnectionMultiplexer>
    lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
    {
        // Connect to a locally running instance of Redis to simulate
        // a local cache emulator experience.
        return ConnectionMultiplexer.Connect("127.0.0.1:6379");
    });

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

Redis wird nativ unter Linux ausgeführt, Sie können aber auch das Windows-Subsystem für Linux verwenden, um Redis auf einem Windows-Computer auszuführen. Weitere Informationen finden Sie unter Install Redis unter Windows Sie können optional eine redis.conf Datei konfigurieren, um die standardmäßigen Einstellungen für Ihren Online-Azure Cache for Redis genauer abzugleichen.

Wie führe ich Redis-Befehle aus?

Sie können alle aufgelisteten Redis-Befehle mit Ausnahme der Befehle verwenden, die unter Redis-Befehle, die in Azure Cache for Redis nicht unterstützt werden aufgeführt sind. Für die Ausführung von Redis-Befehlen haben Sie mehrere Optionen.

Wenn Sie über einen Standard- oder Premium-Cache verfügen, können Sie Redis-Befehle über die Redis-Konsoleausführen. Die Redis-Konsole ist eine sichere Methode zum Ausführen von Redis-Befehlen im Azure-Portal.

Sie können auch die Redis-Befehlszeilentools verwenden. Informationen zur Verwendung finden Sie unter Verwenden des Befehlszeilentools "Redis" mit Azure Cache for Redis

Warum gibt es für Azure Cache for Redis keinen MSDN-Klassenbibliothekverweis ?

Microsoft Azure Cache for Redis basiert auf Redis, dem beliebten Open-Source-basierten In-Memory-Datenspeicher. Sie können eine Vielzahl von Redis-Clients für viele Programmiersprachen verwenden. Jeder Client verfügt über eine eigene API, die unter Verwendung von Redis-Befehlen Aufrufe an den Azure Cache for Redis sendet.

Da sich die Clients jeweils unterscheiden, finden Sie unter MSDN keine zentrale Klassenreferenz. Für jeden Client wird eine eigene Referenzdokumentation geführt. Zusätzlich zur Referenzdokumentation gibt es mehrere Tutorials, die Ihnen den Einstieg in die Verwendung von Azure Cache for Redis mit verschiedenen Sprachen und Cacheclients erleichtern. Sie können unter Verwenden von Azure Cache for Redis und in den zugehörigen Artikeln im Inhaltsverzeichnis auf diese Tutorials zugreifen.

Kann ich Azure Cache for Redis als PHP-Sitzungscache verwenden?

Ja. Um Azure Cache for Redis als PHP-Sitzungscache zu verwenden, geben Sie die Verbindungszeichenfolge zu Ihrer Azure Cache for Redis-Instanz in session.save_path an.

Wichtig

Bei der Verwendung von Azure Cache for Redis als PHP-Sitzungscache müssen Sie – wie im folgenden Beispiel dargestellt – eine URL-Codierung des Sicherheitsschlüssels durchführen, der zum Herstellen der Verbindung mit dem Cache verwendet wird:

session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";

Wurde keine URL-Codierung des Schlüssels vorgenommen, erhalten Sie ggf. eine Ausnahmemeldung ähnlich der folgenden: Failed to parse session.save_path

Weitere Informationen zur Nutzung von Azure Cache for Redis als PHP-Sitzungscache mit dem PhpRedis-Client finden Sie unter PHP Session handler(PHP-Sitzungshandler).

Was sind Redis-Datenbanken?

Redis-Datenbanken sind einfach eine logische Trennung von Daten innerhalb der gleichen Redis-Instanz. Der Cachespeicher wird von allen Datenbanken gemeinsam genutzt, und die tatsächliche Arbeitsspeichernutzung einer bestimmten Datenbank richtet sich nach den in dieser Datenbank gespeicherten Schlüsseln bzw. Werten. Ein Beispiel: Ein C6-Cache verfügt über 53 GB Arbeitsspeicher, ein P5 über 120 GB. Sie können die Gesamtmenge von 53 GB/120 GB einer einzigen Datenbank zuweisen oder das Datenvolumen auf mehrere Datenbanken aufteilen.

Hinweis

Wenn Sie einen Premium-Azure Cache for Redis mit aktiviertem Clustering verwenden, ist nur Datenbank 0 verfügbar. Dies ist eine intrinsische Einschränkung von Redis und nicht spezifisch für Azure Cache for Redis.

Erfahren Sie mehr über weitere häufig gestellte Fragen zu Azure Cache for Redis.