Azure Managed Redis -klientbibliotek (förhandsversion)
Azure Managed Redis (förhandsversion) baseras på det populära minnesinterna datalagret Redis. Azure Managed Redis kan nås av en mängd olika Redis-klienter för många programmeringsspråk. 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 innehåller också länkar för att få support via klientbibliotekets utvecklarcommunity. Azure Managed Redis-teamet äger inte utvecklingen eller stödet för några klientbibliotek.
Rekommendationerna nedan baseras på popularitet och om det finns en aktiv onlinecommunity för att stödja och svara på dina frågor. Vi rekommenderar bara att du använder den senaste tillgängliga versionen och uppgraderar regelbundet när nya versioner blir tillgängliga. Dessa bibliotek är under aktiv utveckling och släpper ofta nya versioner 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å klustringsprincipen
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 redis-instansen 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
Konfiguration och hantering av Azure Managed Redis-instanser hanteras av Microsoft, 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 du se 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 flernyckelkommandon 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 i samma fack. Följande kommandon med flera nycklar tillåts dock mellan platser i Active-Active-databaser: MGET
, EXISTS
och TOUCH
. Mer information finns i Databaskluster.
Kommandon som blockerats för enterprise-klustringsprincip
- KLUSTERINFORMATION
- KLUSTERHJÄLP
- KLUSTERNYCKLARLOT
- KLUSTERNODER
- KLUSTERFACK
Kommandon blockerade för aktiv geo-replikering
- FLUSHALL
- FLUSHDB
Klientbiblioteksspecifik vägledning
Mer information om metodtips för klientbibliotek finns i följande länkar:
- StackExchange.Redis (.NET)
- Java – vilken klient ska jag använda?
- Sallad (Java)
- Jedis (Java)
- Redisson (Java)
- Node.js
- PHP
- HiRedisCluster
- ASP.NET sessionstillståndsprovider
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 andra kända problem kan påverka funktioner som används av ditt program. Mer informationCHANGELOG
finns i och vanliga frågor och svar om Redisson.
Övriga anteckningar:
- Redisson använder som standard strategin "läsa från replik", till skillnad från vissa andra klienter. Ändra detta genom att ändra konfigurationsinställningen "readMode".
- Redisson har en strategi för anslutningspooler med konfigurerbara minimi- och maxinställningar och standardvärdena är stora. De stora standardvärdena kan bidra till aggressiva återanslutningsbeteenden eller "anslutningsstormar". Du kan minska risken genom att använda färre anslutningar eftersom du effektivt kan pipelinekommandon, eller kommandobatch, över några få anslutningar.
- Redisson har en standardtidsgräns för inaktiv anslutning på 10 sekunder, vilket leder till mer stängning och återöppning av anslutningar än vad som är idealiskt.
Här är en rekommenderad baslinjekonfiguration för klusterläge som du kan ändra 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 som visar hur du använder 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
Förutom referensdokumentationen hittar du självstudier som visar hur du 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:
- Koda en .NET Framework-app
- Koda en .NET Core-app
- Koda en ASP.NET webbapp
- Koda en ASP.NET Core-webbapp
- Koda en Java-app
- Koda en Node.js app
- Koda en Python-app