Azure Managed Redis (Vorschau)-Clientbibliotheken
Azure Managed Redis (Vorschau) basiert auf dem beliebten speicherinternen Datenspeicher Redis. Der Zugriff auf Azure Managed Redis kann über eine Vielzahl von Redis-Clients für zahlreiche Programmiersprachen erfolgen. Jede Clientbibliothek verfügt über eine eigene API, die Aufrufe an Redis-Server mittels Redis-Befehlen sendet, doch die Clientbibliotheken sind so konzipiert, das sie mit jedem Redis-Server kommunizieren.
Jede Clientbibliothek unterhält ihre eigene Referenzdokumentation. Die Bibliotheken bieten auch Links, um Support aus der Entwicklercommunity für Clientbibliotheken zu erhalten. Das Azure Managed Redis-Team ist weder für die Entwicklung noch für den Support von Clientbibliotheken zuständig.
Die nachstehenden Empfehlungen basieren auf der Beliebtheit und ob es eine aktive Onlinecommunity gibt, die Sie unterstützt und Ihre Fragen beantwortet. Es wird nur empfohlen, die neueste verfügbare Version zu verwenden und regelmäßig zu aktualisieren, sobald neue Versionen verfügbar werden. Diese Bibliotheken befinden sich in der aktiven Entwicklung und geben häufig neue Versionen mit Verbesserungen der Zuverlässigkeit und Leistung frei.
Clientbibliothek | Sprache | GitHub-Repository | Dokumentation |
---|---|---|---|
StackExchange.Redis | C#/.NET | Link | Weitere Informationen finden Sie hier. |
Lettuce | Java | Link | Weitere Informationen finden Sie hier. |
Jedis | Java | Link | |
node_redis | Node.js | Link | |
Redisson | Java | Link | Weitere Informationen finden Sie hier. |
ioredis | Node.js | Link | Weitere Informationen finden Sie hier. |
Hinweis
Ihre Anwendung kann eine beliebige Clientbibliothek verwenden, die mit Open-Source-Redis kompatibel ist, um eine Verbindung mit Ihrer Azure Managed Redis-Instanz herzustellen.
Auswählen der richtigen Clientbibliothek basierend auf Ihrer Clusteringrichtlinie
Azure Managed Redis unterstützt die Enterprise-Clusteringrichtlinie und die OSS-Clusteringrichtlinie. Weitere Informationen finden Sie hier (Link zu den Informationen zur Clusteringrichtlinie hinzufügen). Alle Clientbibliotheken arbeiten mit Ihrer Redis-Instanz mit der Enterprise-Clusteringrichtlinie. Wenn Sie jedoch die OSS-Clusteringrichtlinie verwenden, stellen Sie sicher, dass die von Ihnen ausgewählte Clientbibliothek die Verbindung mit geclusterten Redis-Instanzen unterstützt.
Blockierte Befehle
Die Konfiguration und Verwaltung von Azure Managed Redis-Instanzen werden von Microsoft verwaltet. Daher sind die folgenden Befehle standardmäßig deaktiviert. Weitere Informationen zu blockierten Befehlen finden Sie unter Kompatibilität von Clusterverwaltungsbefehlen
Befehle mit mehreren Schlüsseln
Da die AMR-Instanzen eine Clusterkonfiguration verwenden, werden für Befehle, die auf mehreren Schlüsseln basieren, möglicherweise Ausnahmen vom Typ CROSSSLOT
angezeigt. Das Verhalten variiert je nach verwendeter Clusteringrichtlinie. Wenn Sie die OSS-Clusteringrichtlinie verwenden, müssen bei Befehlen mit mehreren Schlüsseln alle Schlüssel dem gleichen Hashslot zugeordnet werden.
Bei Verwendung der Enterprise-Clusteringrichtlinie treten ggf. auch Fehler vom Typ CROSSSLOT
auf. Beim Enterprise-Clustering können nur folgende Befehle mit mehreren Schlüsseln slotübergreifend verwendet werden: DEL
, MSET
, MGET
, EXISTS
, UNLINK
und TOUCH
.
In Active-Active Datenbanken können Schreibbefehle mit mehreren Schlüsseln (DEL
, MSET
, UNLINK
) nur für Schlüssel ausgeführt werden, die sich im selben Slot befinden. Die folgenden Befehle mit mehreren Schlüsseln sind jedoch slotsübergreifend in Active-Active Datenbanken zulässig: MGET
, EXISTS
und TOUCH
. Weitere Informationen finden Sie im Artikel zum Datenbankclustering unter Multi-key operations (Vorgänge mit mehreren Schlüsseln).
Befehle, die für die Enterprise-Clusteringrichtlinie blockiert sind
- CLUSTER INFO
- CLUSTER HELP
- CLUSTER KEYSLOT
- CLUSTER NODES
- CLUSTER SLOTS
Befehle, die für die aktive Georeplikation blockiert sind
- FLUSHALL
- FLUSHDB
Spezifische Anleitungen für die Clientbibliothek
Informationen zu bewährten Methoden für clientbibliotheksspezifische Anleitungen finden Sie unter den folgenden Links:
- StackExchange.Redis (.NET)
- Java – Welchen Client soll ich verwenden?
- Lettuce (Java)
- Jedis (Java)
- Redisson (Java)
- Node.js
- PHP
- HiRedisCluster
- ASP.NET-Sitzungszustandsanbieter
Redisson (Java)
Wir empfehlen die Verwendung von redisson 3.14.1 oder höher. Ältere Versionen enthalten bekannte Probleme mit Verbindungsverlusten, die nach Failovern zu Problemen führen. Überwachen Sie das Redisson-Änderungsprotokoll auf andere bekannte Probleme, die sich auf Features auswirken können, die von Ihrer Anwendung verwendet werden. Weitere Informationen finden Sie unter CHANGELOG
und in den Häufig gestellten Fragen (FAQ) zu Redisson.
Weitere Hinweise:
- Redisson verwendet im Gegensatz zu einigen anderen Clients standardmäßig die Strategie „Aus Replikat lesen“. Um dies zu ändern, ändern Sie die Konfigurationseinstellung „readMode“.
- Redisson verfügt über eine Strategie zum Bilden von Verbindungspools mit konfigurierbaren Mindest- und Höchsteinstellungen, wobei die Standardmindestwerte groß sind. Die großen Standardwerte können zu aggressivem Wiederherstellungsverhalten von Verbindungen bzw. sogenannten „Verbindungsstürmen“ beitragen. Um das Risiko zu verringern, sollten Sie erwägen, weniger Verbindungen zu verwenden, da Sie Befehle oder Befehlsbatches effizient über mehrere Verbindungen per Pipeline übertragen können.
- Redisson verfügt über ein standardmäßiges Leerlauftimeout von 10 Sekunden, was dazu führt, dass Verbindungen häufiger geöffnet und geschlossen werden, als es ideal ist.
Im Folgenden finden Sie eine empfohlene Baselinekonfiguration für den Clustermodus, die Sie nach Bedarf ändern können:
clusterServersConfig:
idleConnectionTimeout: 30000
connectTimeout: 15000
timeout: 5000
retryAttempts: 3
retryInterval: 3000
checkLockSyncedSlaves: false
failedSlaveReconnectionInterval: 15000
failedSlaveCheckInterval: 60000
subscriptionsPerConnection: 5
clientName: "redisson"
loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
slaveConnectionMinimumIdleSize: 2
slaveConnectionPoolSize: 24
masterConnectionMinimumIdleSize: 2
masterConnectionPoolSize: 24
readMode: "MASTER"
subscriptionMode: "MASTER"
nodeAddresses:
- "redis://mycacheaddress:10000"
scanInterval: 1000
pingConnectionInterval: 60000
keepAlive: false
tcpNoDelay: true
Einen Artikel zur Verwendung der Redisson-Unterstützung für JCache als Speicher für den HTTP-Sitzungszustand in IBM Liberty in Azure finden Sie unter Verwenden von Java EE JCache mit Open Liberty oder WebSphere Liberty in einem AKS-Cluster (Azure Kubernetes Service).
Verwenden von Clientbibliotheken
Zusätzlich zur Referenzdokumentation gibt es mehrere Tutorials, die Ihnen den Einstieg in die Verwendung von Azure Managed Redis mit verschiedenen Sprachen und Cacheclients erleichtern.
Weitere Informationen zur Verwendung einiger dieser Clientbibliotheken in Tutorials finden Sie in den folgenden Artikeln:
- Programmieren einer .NET Framework-App
- Programmieren einer .NET Core-App
- Programmieren einer ASP.NET-Web-App
- Programmieren einer ASP.NET Core-Web-App
- Programmieren einer Java-App
- Programmieren einer Node.js-App
- Programmieren einer Python-App