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 unter 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 diesem Modell folgen, wenn die Last in Ihrer Anwendung variiert. 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 retry-Logik für jede verwendete ConnectionMultiplexer-Instanz verwenden.
      • Legen Sie die ClientName -Eigenschaft für jeden Multiplexer fest, um die Diagnose zu vereinfachen.
      • Diese Empfehlung 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 von Hostname, Ports und Zugriffsschlüsseln vom Azure-Portal

Um ihren Azure Cache for Redis-Server zu verbinden, benötigt der Cacheclient den Hostnamen, die Ports und einen Schlüssel für den Cache. Von einigen Clients wird unter Umständen mit etwas anderen Namen auf diese Elemente verwiesen. Sie können den Hostnamen, Ports und Zugriffsschlüssel vom Azure-Portal abrufen.

  • Wählen Sie Zugriffsschlüssel aus, um die Zugriffsschlüssel aus dem linken Navigationsbereich des Cache abzurufen.

    Azure Cache for Redis-Schlüssel

  • Wählen Sie Eigenschaften aus, um den Hostnamen und die Ports aus dem linken Navigationsbereich des Cache abzurufen. Der Hostname hat das Format <DNS-Name>.redis.cache.windows.net.

    Azure Cache for Redis-Eigenschaften

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 die MSOpenTech-Version von „redis-server.exe“ über die Redis-Befehlszeilentools auf Ihrem lokalen Computer ausführen. Stellen Sie dann eine Verbindung damit her, um eine Umgebung zu erhalten, die einem lokalen Cache-Emulator ähnelt. Dies wird im folgenden Beispiel veranschaulicht:

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;
    }
}

Optional können Sie die Datei redis.conf konfigurieren, um bei Bedarf eine bessere Abstimmung mit den standardmäßigen Cacheeinstellungen für Ihre Azure Cache for Redis-Onlineinstanz zu erreichen.

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. Führen Sie hierfür die folgenden Schritte aus:
  • Laden Sie die Redis-Befehlszeilentools herunter.
  • Stellen Sie über redis-cli.exeeine Verbindung mit dem Cache her. Übergeben Sie den Cacheendpunkt mithilfe des Schalters „-h“ und dem Schlüssel mit Verwendung von „-a“, wie im folgenden Beispiel gezeigt:
  • redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

Hinweis

Die Redis-Befehlszeilentools funktionieren nicht mit dem TLS-Port, aber Sie können ein Hilfsprogramm wie stunnel verwenden, um eine sichere Verbindung zwischen den Tools und dem TLS-Port herzustellen. Anweisungen hierzu finden Sie unter Verwenden des Redis-Befehlszeilentools 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. Der Zugriff kann über eine Vielzahl von Redis-Clients für zahlreiche Programmiersprachen erfolgen. 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.

Nächste Schritte

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