Clientbibliotheken van Azure Managed Redis (preview)
Azure Managed Redis (preview) is gebaseerd op de populaire in-memory data store Redis. Redis-clients voor veel programmeertalen hebben toegang tot Azure Managed Redis. Elke clientbibliotheek heeft een eigen API die aanroepen naar Redis-server doet met behulp van Redis-opdrachten, maar de clientbibliotheken zijn gebouwd om met elke Redis-server te communiceren.
Elke clientbibliotheek onderhoudt zijn eigen referentiedocumentatie. De bibliotheken bieden ook koppelingen om ondersteuning te krijgen via de ontwikkelaarscommunity van de clientbibliotheek. Het Azure Managed Redis-team is niet eigenaar van de ontwikkeling of de ondersteuning voor clientbibliotheken.
De volgende aanbevelingen zijn gebaseerd op populariteit en of er een actieve onlinecommunity is om uw vragen te ondersteunen en te beantwoorden. We raden u alleen aan de nieuwste beschikbare versie te gebruiken en regelmatig een upgrade uit te voeren zodra er nieuwe versies beschikbaar komen. Deze bibliotheken zijn in actieve ontwikkeling en brengen vaak nieuwe versies uit met verbeteringen in betrouwbaarheid en prestaties.
Clientbibliotheek | Taal | GitHub-opslagplaats | Documentatie |
---|---|---|---|
StackExchange.Redis | C#/.NET | Koppeling | Meer informatie vindt u hier |
Lettuce | Java | Koppeling | Meer informatie vindt u hier |
Jedis | Java | Koppeling | |
node_redis | Node.js | Koppeling | |
Redisson | Java | Koppeling | Meer informatie vindt u hier |
ioredis | Node.js | Koppeling | Meer informatie vindt u hier |
Notitie
Uw toepassing kan elke clientbibliotheek gebruiken die compatibel is met open-source Redis om verbinding te maken met uw Azure Managed Redis instance.
De juiste clientbibliotheek kiezen op basis van uw clusterbeleid
Azure Managed Redis ondersteunt het Enterprise-clusterbeleid en het OSS-clusterbeleid. Bekijk hier meer informatie (link naar informatie over het clusterbeleid toevoegen).
Alle clientbibliotheken werken met uw Redis-instantie met Enterprise-clusterbeleid. Als u echter het OSS-clusterbeleid gebruikt, moet u ervoor zorgen dat de clientbibliotheek die u kiest, ondersteuning biedt voor het maken van verbinding met geclusterde Redis-exemplaren.
Geblokkeerde opdrachten
Microsoft beheert de configuratie en het beheer van Azure Managed Redis-exemplaren, waardoor de volgende opdrachten standaard worden uitgeschakeld. Voor meer informatie over geblokkeerde commando's, zie compatibiliteit commando's clusterbeheer
Multisleutelopdrachten
Omdat de AMR-instanties een geclusterde configuratie gebruiken, kunt u CROSSSLOT
uitzonderingen zien op opdrachten die op meerdere sleutels werken. Het gedrag varieert afhankelijk van het gebruikte clusterbeleid. Als u het OSS-clusterbeleid gebruikt, vereisen multi-sleutelopdrachten dat alle sleutels worden toegewezen aan dezelfde hash-slot.
U kunt ook CROSSSLOT
fouten zien met Enterprise-clusterbeleid. Alleen de volgende multi-key opdrachten zijn toegestaan in slots met Enterprise clustering: DEL
, MSET
, MGET
, EXISTS
, UNLINK
, en TOUCH
.
In Active-Active databases kunnen schrijfopdrachten voor meerdere sleutels (DEL
, MSET
, UNLINK
) alleen worden uitgevoerd op sleutels die zich in dezelfde slot bevinden. De volgende multi-key commando's zijn echter toegestaan tussen slots in Active-Active databases: MGET
, EXISTS
, en TOUCH
. Zie Database-clustering voor meer informatie.
Opdrachten die zijn geblokkeerd voor enterprise-clusterbeleid
- CLUSTER INFO
- CLUSTER HELP
- CLUSTER KEYSLOT
- CLUSTERKNOOPPUNTEN
- CLUSTER SLOTS
Opdrachten die zijn geblokkeerd voor actieve geo-replicatie
- FLUSHALL
- FLUSHDB
Specifieke richtlijnen voor clientbibliotheek
Zie de volgende koppelingen voor informatie over best practices voor clientbibliotheken:
- StackExchange.Redis (.NET)
- Lettuce (Java)
- Jedis (Java)
- Redisson (Java)
- Node.js
- PHP
- HiRedisCluster
- Sessiestatusprovider van ASP.NET
Redisson (Java)
Wij adviseren redisson 3.14.1 of hoger te gebruiken. Oudere versies bevatten bekende problemen met verbindingslekken die problemen veroorzaken na failovers. Houd de Redisson changelog in de gaten voor andere bekende problemen die van invloed kunnen zijn op functies die door uw toepassing worden gebruikt. Voor meer informatie, zieCHANGELOG
en de Redisson Veelgestelde vragen.
Overige opmerkingen:
- Redisson gebruikt standaard de 'read from replica' strategie, in tegenstelling tot sommige andere clients. Als u deze standaardinstelling wilt wijzigen, wijzigt u de configuratie-instelling 'readMode'.
- Redisson heeft een verbindingspoolingstrategie met configureerbare minimum- en maximuminstellingen, en de standaard minimumwaarden zijn groot. De grote standaardinstellingen kunnen bijdragen aan agressief gedrag voor opnieuw verbinden of 'verbindingsstormen'. Om dit risico te verkleinen, kunt u overwegen om minder verbindingen te gebruiken, omdat u commando's, of batches van commando's, efficiƫnt over een paar verbindingen kunt leiden.
- Redisson heeft een standaard time-out voor niet-actieve verbindingen van 10 seconden, wat leidt tot meer sluiting en heropening van verbindingen dan ideaal.
Hier volgt een aanbevolen basislijnconfiguratie voor de clustermodus die u indien nodig kunt wijzigen:
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
Zie Java EE JCache gebruiken met Open Liberty of WebSphere Liberty in een AKS-cluster (Azure Kubernetes Service) voor een artikel over de ondersteuning van Redisson voor JCache als de opslag voor http-sessiestatus in IBM Liberty in Azure.
Clientbibliotheken gebruiken
Naast de referentiedocumentatie kunt u tutorials vinden die laten zien hoe u aan de slag kunt gaan met Azure Managed Redis door verschillende talen en cache clients te gebruiken.
Zie de volgende artikelen voor meer informatie over het gebruik van een aantal van deze clientbibliotheken in zelfstudies:
- Een .NET Framework-app coderen
- Een .NET Core-app coderen
- Een ASP.NET-web-app coderen
- Een ASP.NET Core-web-app coderen
- Een Java-app coderen
- Een Node.js-app coderen
- Een Python-app coderen