Freigeben über


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, EXISTSund 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:

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:

Nächste Schritte