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.
- Sie können sich eines unserer Tutorials ansehen, verfügbar für .NET, ASP.NET, Java, Node.js und Python.
- Sie können sich das Video How to Build High Performance Apps Using Microsoft Azure Cache for Redis (So erstellen Sie mit Microsoft Azure Cache for Redis hochleistungsfähige Apps) ansehen.
- Sie können sich in der Clientdokumentation die Informationen zu den Beispielclients ansehen, die der in Ihrem Projekt verwendeten Entwicklersprache entsprechen. Es gibt viele Redis-Clients, die mit Azure Cache for Redis verwendet werden können. Eine Liste der Redis-Clients finden Sie unter https://redis.io/clients.
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. - 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 zum Abrufen der Zugriffsschlüssel im Ressourcenmenü die Option Authentifizierung aus. Wählen Sie dann die Registerkarte Zugriffsschlüssel aus.
Um den Hostnamen und die Ports für den Cache abzurufen, wählen Sie im Ressourcenmenü die Option Übersicht aus. Der Hostname hat das Format <DNS-Name>.redis.cache.windows.net.
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. Um auf diese Tutorials zuzugreifen, sehen Sie sich den Artikel Verwenden von Azure Cache for Redis und die zugehörigen Artikel im Inhaltsverzeichnis an.
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.
Zugehöriger Inhalt
Erfahren Sie mehr über weitere häufig gestellte Fragen zu Azure Cache for Redis.