Bibliothèques clientes Azure Managed Redis (préversion)
Azure Managed Redis (préversion) est basé sur le magasin de données en mémoire populaire, Redis. Azure Managed Redis est accessible par un large éventail de clients Redis pour de nombreux langages de programmation. Chaque bibliothèque cliente dispose de sa propre API qui effectue des appels au serveur Redis à l’aide de commandes Redis, mais les bibliothèques clientes sont générées pour communiquer avec n’importe quel serveur Redis.
Chaque bibliothèque cliente entretient sa propre documentation de référence. Les bibliothèques fournissent également des liens pour obtenir de l’aide auprès de la communauté des développeurs de bibliothèques clientes. L’équipe Azure Managed Redis n’est pas responsable du développement ou du support des bibliothèques clients.
Les recommandations ci-dessous sont basées sur la popularité et sur l’existence d’une communauté en ligne active pour vous aider et répondre à vos questions. Nous vous recommandons d’utiliser la dernière version disponible et de procéder régulièrement à une mise à niveau à mesure que de nouvelles versions sont mises à disposition. Ces bibliothèques sont en cours de développement actif et publient souvent de nouvelles versions avec des améliorations en termes de fiabilité et de performances.
Bibliothèque cliente | Langage | Référentiel GitHub | Documentation |
---|---|---|---|
StackExchange.Redis | C#/.NET | Lien | Plus d’informations ici |
Lettuce | Java | Lien | Plus d’informations ici |
Jedis | Java | Lien | |
node_redis | Node.js | Lien | |
Redisson | Java | Lien | Plus d’informations ici |
ioredis | Node.js | Lien | Plus d’informations ici |
Remarque
Votre application peut utiliser la bibliothèque client compatible de votre choix avec Redis open source pour se connecter à votre instance Azure Managed Redis.
Choisir la bibliothèque client appropriée en fonction de votre stratégie de clustering
Azure Managed Redis prend en charge la stratégie de clustering Enterprise et la stratégie de clustering OSS. Pour plus d’informations, cliquez ici (ajoutez un lien vers les informations relatives à la stratégie de clustering). Toutes les bibliothèques clientes fonctionnent avec votre instance Redis dans le cadre d’une stratégie de clustering Enterprise. Toutefois, si vous utilisez la stratégie de clustering OSS, assurez-vous que la bibliothèque client que vous choisissez prend en charge la connexion aux instances Redis en cluster.
Commandes bloquées
La configuration et la gestion des instances Azure Managed Redis sont gérées par Microsoft, qui désactive par défaut les commandes suivantes. Pour plus d’informations sur les commandes bloquées, consultez Compatibilité des commandes de gestion des clusters
Commandes multi-clés
Étant donné que les instances AMR utilisent une configuration en cluster, vous pouvez observer des exceptions CROSSSLOT
sur les commandes qui fonctionnent sur plusieurs clés. Le comportement varie en fonction de la stratégie de clustering utilisée. Si vous utilisez la stratégie de clustering OSS, les commandes multi-clés ont besoin que toutes les clés soient mappées au même emplacement de hachage.
Vous risquez aussi de voir des erreurs CROSSSLOT
avec la stratégie de clustering Enterprise. Seules les commandes multi-clés suivantes sont autorisées sur les emplacements avec clustering Enterprise : DEL
, MSET
, MGET
, EXISTS
, UNLINK
et TOUCH
.
Dans les bases de données en mode Actif-Actif, les commandes d’écriture multi-clés (DEL
, MSET
, UNLINK
) ne peuvent être exécutées que sur les clés situées dans le même emplacement. Les commandes multi-clés suivantes sont toutefois autorisées sur les emplacements des bases de données en mode Actif-Actif : MGET
, EXISTS
et TOUCH
. Pour plus d’informations, consultez Clustering de bases de données.
Commandes bloquées pour la stratégie de clustering Enterprise
- CLUSTER INFO
- CLUSTER HELP
- CLUSTER KEYSLOT
- CLUSTER NODES
- CLUSTER SLOTS
Commandes bloquées pour la géoréplication active
- FLUSHALL
- FLUSHDB
Conseils pour la bibliothèque cliente
Pour plus d’informations sur les meilleure pratiques relatives aux bibliothèques clientes, consultez les liens suivants :
- StackExchange.Redis (.NET)
- Java - Quel client dois-je utiliser ?
- Lettuce (Java)
- Jedis (Java)
- Redisson (Java)
- Node.JS
- PHP
- HiRedisCluster
- Fournisseur d’état de session ASP.NET
Redisson (Java)
Nous vous recommandons d’utiliser redisson 3.14.1 ou une version ultérieure. Les versions antérieures contiennent des problèmes de fuite de connexion connus qui provoquent des problèmes après les basculements. Surveillez le journal des modifications Redisson pour rechercher d’autres problèmes connus qui peuvent affecter les fonctionnalités utilisées par votre application. Pour plus d’informations, consultezCHANGELOG
les et la FAQ Redisson.
Autres remarques :
- Redisson utilise par défaut la stratégie « lecture à partir du réplica », contrairement à d’autres clients. Pour modifier ce paramètre, modifiez le paramètre de configuration « readMode ».
- Redisson a une stratégie de regroupement de connexions avec des paramètres de minimum et maximum configurables, et les valeurs minimales par défaut sont grandes. Les grandes valeurs par défaut peuvent contribuer à des comportements de reconnexion agressifs ou à des « tempêtes de connexions ». Pour réduire le risque, envisagez d’utiliser moins de connexions, car vous pouvez efficacement mettre en pipeline des commandes, ou des lots de commandes, sur quelques connexions.
- Redisson a un délai d’expiration de connexion inactive par défaut de 10 secondes, ce qui entraîne plus de fermetures et de réouvertures des connexions que l’idéal.
Voici une configuration de base recommandée pour le mode cluster que vous pouvez modifier en fonction des besoins :
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
Pour obtenir un article montrant comment utiliser la prise en charge de Redisson pour JCache en tant que magasin d’état de session HTTP dans IBM Liberty sur Azure, consultez Utiliser Java EE JCache avec Open Liberty ou WebSphere Liberty sur un cluster Azure Kubernetes Service (AKS).
Utiliser des bibliothèques clientes
En plus de la documentation de référence, vous pouvez trouver des tutoriels qui montrent comment bien démarrer avec Azure Managed Redis en utilisant différents langages et clients de cache.
Pour plus d’informations sur l’utilisation de certaines de ces bibliothèques clientes dans les tutoriels, consultez les articles suivants :
- Programmer une application .NET Framework
- Programmer une application .NET Core
- Programmer une application web ASP.NET
- Coder une application web ASP.NET Core
- Programmer une application Java
- Programmer une application Node.js
- Programmer une application Python