Dela via


Azure Managed Redis -klientbibliotek (förhandsversion)

Azure Managed Redis (förhandsversion) baseras på det populära minnesinterna datalagret Redis. Redis-klienter för många programmeringsspråk har åtkomst till Azure Managed Redis. Varje klientbibliotek har ett eget API som anropar Redis-servern med Hjälp av Redis-kommandon, men klientbiblioteken är byggda för att kommunicera med alla Redis-servrar.

Varje klientbibliotek har en egen referensdokumentation. Biblioteken tillhandahåller också länkar till supportresurser via klientbibliotekens utvecklarcommunity. Azure Managed Redis-teamet ansvarar inte för utvecklingen av eller supporten för några klientbibliotek.

Följande rekommendationer baseras på popularitet och om det finns en aktiv onlinecommunity för att stödja och besvara dina frågor. Vi rekommenderar att du endast använder den senaste tillgängliga versionen och att du uppgraderar regelbundet när nya versioner blir tillgängliga. Dessa bibliotek är under aktiv utveckling och nya versioner lanseras ofta med förbättringar av tillförlitlighet och prestanda.

Klientbibliotek Språk GitHub-lagringsplats Dokumentation
StackExchange.Redis C#/.NET Länk Mer information finns här
Lettuce Java Länk Mer information finns här
Jedis Java Länk
node_redis Node.js Länk
Redisson Java Länk Mer information finns här
ioredis Node.js Länk Mer information finns här

Kommentar

Ditt program kan använda alla klientbibliotek som är kompatibla med Redis med öppen källkod för att ansluta till din Azure Managed Redis-instans.

Välja rätt klientbibliotek baserat på aktuell klustringsprincip

Azure Managed Redis stöder Enterprise-klustringsprincipen och OSS-klustringsprincipen. Mer information finns här (lägg till länk till information om klustringsprinciper).

Alla klientbibliotek fungerar med din Redis-instans med Enterprise-klustringsprincipen. Men om du använder OSS-klustringsprincipen kontrollerar du att det klientbibliotek som du väljer stöder anslutning till klustrade Redis-instanser.

Blockerade kommandon

Microsoft hanterar konfigurationen och hanteringen av Azure Managed Redis-instanser, vilket inaktiverar följande kommandon som standard. Mer information om blockerade kommandon finns i Kompatibilitet med klusterhanteringskommandon

Kommandon med flera nycklar

Eftersom AMR-instanserna använder en klustrad konfiguration kan det hända att du ser CROSSSLOT-undantag för kommandon som körs på flera nycklar. Beteendet varierar beroende på vilken klustringsprincip som används. Om du använder OSS-klustringsprincipen kräver kommandon med flera nycklar att alla nycklar mappas till samma hash-plats.

Du kan också se CROSSSLOT-fel med Enterprise-klustringsprincipen. Endast följande kommandon med flera nycklar tillåts mellan platser med Enterprise-klustring: DEL, MSET, MGET, EXISTS, UNLINK och TOUCH.

I Active-Active-databaser kan skrivkommandon med flera nycklar (DEL, MSET, UNLINK) endast köras på nycklar som finns på samma plats. Följande kommandon med flera nycklar tillåts dock mellan platser i Active-Active-databaser: MGET, EXISTS och TOUCH. Mer information finns i Databasklustring.

Kommandon som blockeras för Enterprise-klustringsprincipen

  • CLUSTER INFO
  • CLUSTER HELP
  • CLUSTER KEYSLOT
  • CLUSTER NODES
  • CLUSTER SLOTS

Kommandon som blockeras för aktiv geo-replikering

  • FLUSHALL
  • FLUSHDB

Klientbiblioteksspecifik vägledning

Mer information om klientbiblioteksspecifika metodtips finns i följande länkar:

Redisson (Java)

Vi rekommenderar att du använder redisson 3.14.1 eller senare. Äldre versioner innehåller kända problem med anslutningsläckage som orsakar problem efter redundansväxlingar. Övervaka Redisson-ändringsloggen för att identifiera andra kända problem som kan påverka funktioner som används av ditt program. Mer information finns i CHANGELOG och Vanliga frågor och svar om Redisson.

Andra kommentarer:

  • Redisson använder som standard strategin "läsa från replik", till skillnad från vissa andra klienter. Om du vill ändra den här standardinställningen ändrar du konfigurationsinställningen "readMode".
  • Redisson använder en strategi för anslutningspooler med konfigurerbara minimi- och maxinställningar, och de standardinställda minimivärdena är stora. De stora standardvärdena kan bidra till aggressiva återanslutningsbeteenden eller "anslutningsstormar". Du kan minska denna risk genom att använda färre anslutningar, eftersom du effektivt kan skicka kommandon, eller uppsättningar av kommandon, via några få anslutningar.
  • Redisson har en standard timeout för inaktiv anslutning på 10 sekunder, vilket leder till mer stängning och återöppning av anslutningar än idealiskt.

Här följer en rekommenderad baslinjekonfiguration för klusterläge som du kan redigera efter behov:

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

En artikel om Redissons stöd för JCache som lagringsplats för HTTP-sessionstillstånd i IBM Liberty på Azure finns i Använda Java EE JCache med Open Liberty eller WebSphere Liberty i ett AKS-kluster (Azure Kubernetes Service).

Så här använder du klientbibliotek

Utöver referensdokumentationen finns självstudier som visar hur man kommer igång med Azure Managed Redis med olika språk och cacheklienter.

Mer information om hur du använder några av dessa klientbibliotek i självstudier finns i följande artiklar:

Nästa steg