Bibliotecas de clientes do Azure Managed Redis (versão prévia)
O Azure Managed Redis (versão prévia) é baseado no popular armazenamento de dados na memória, o Redis. O Azure Managed Redis pode ser acessado por uma ampla variedade de clientes Redis para muitas linguagens de programação. Cada biblioteca de clientes tem sua própria API, que faz chamadas para o servidor Redis usando os comandos os Redis, mas as bibliotecas de clientes são criadas para se comunicar com qualquer servidor Redis.
Cada biblioteca de clientes mantém a própria documentação de referência. As biblioteca também fornecem links para obter suporte por meio da comunidade de desenvolvedores da biblioteca de clientes. A equipe do Azure Managed Redis não desenvolve nem oferece suporte direto para nenhuma biblioteca de clientes.
As recomendações abaixo são baseadas na popularidade e na existência de uma comunidade online ativa, capaz de dar suporte e responder às suas perguntas. Só recomendamos usar a versão mais recente disponível e atualizar regularmente, à medida que novas versões forem disponibilizadas. Essas bibliotecas estão em desenvolvimento ativo e geralmente lançam novas versões com melhorias de confiabilidade e desempenho.
Biblioteca de clientes | Idioma | Repositório GitHub | Documentação |
---|---|---|---|
StackExchange.Redis | C# / .NET | Link | Mais informações podem ser obtidas aqui |
Lettuce | Java | Link | Mais informações podem ser obtidas aqui |
Jedis | Java | Link | |
node_redis | Node.js | Link | |
Redisson | Java | Link | Mais informações podem ser obtidas aqui |
ioredis | Node.js | Link | Mais informações podem ser obtidas aqui |
Observação
Seu aplicativo pode usar qualquer biblioteca de clientes compatível com o Redis de código aberto para se conectar à sua instância do Azure Managed Redis.
Como escolher a biblioteca de clientes correta com base na política de clustering
O Azure Managed Redis oferece suporte à política de clustering Enterprise e à política de clustering de OSS (software de código aberto). Veja mais informações aqui (adicionar o link às informações da política de clustering). Todas as bibliotecas de cliente funcionam com a política de clustering Enterprise. No entanto, caso esteja usando a política de clustering de OSS, verifique se a biblioteca de clientes escolhida dá suporte à conexão com instâncias clusterizadas do Redis.
Comandos bloqueados
A configuração e o gerenciamento de instâncias do Azure Managed Redis são gerenciados pela Microsoft, o que desabilita os comandos a seguir por padrão. Para mais informações sobre comandos bloqueados, confira o artigo Compatibilidade de comandos de gerenciamento de cluster
Comandos de várias chaves
Como as camadas do ARM usam uma configuração clusterizada, você pode conferir exceções CROSSSLOT
em comandos que operam em várias chaves. O comportamento varia dependendo da política de clustering usada. Se você usar a política de clustering do OSS, os comandos de várias chaves exigirão que todas as chaves sejam mapeadas para o mesmo slot de hash.
Você também pode ver CROSSSLOT
erros com a política de clustering Enterprise. Somente os seguintes comandos de várias chaves são permitidos entre slots com clustering Enterprise: DEL
, MSET
, MGET
, EXISTS
, UNLINK
e TOUCH
.
Em bancos de dados Active-Active, os comandos de gravação de várias chaves (DEL
, MSET
, UNLINK
) só podem ser executados em chaves que estão no mesmo slot. No entanto, os seguintes comandos multichave são permitidos entre slots em bancos de dados Active-Active: MGET
, EXISTS
e TOUCH
. Para obter mais informações, consulte clustering banco de dados.
Comandos bloqueados para a política de clustering Enterprise
- CLUSTER INFO
- CLUSTER HELP
- CLUSTER KEYSLOT
- CLUSTER NODES
- CLUSTER SLOTS
Comandos bloqueados para replicação geográfica ativa
- FLUSHALL
- FLUSHDB
Diretrizes específicas para a biblioteca de clientes
Para obter informações sobre as melhores práticas de diretrizes específicas da biblioteca de clientes, confira os seguintes links:
- StackExchange.Redis (.NET)
- Java – Qual cliente devo usar?
- Lettuce (Java)
- Jedis (Java)
- Redisson (Java)
- Node.js
- PHP
- HiRedisCluster
- Provedor de estado de sessão ASP.NET
Redisson (Java)
Recomendamos que você use o Redisson 3.14.1 ou superior. As versões mais antigas contêm problemas conhecidos de vazamento de conexão que causam problemas após failovers. Monitore o log de alterações do Redisson pois outros problemas conhecidos podem afetar os recursos usados pelo aplicativo. Para obter mais informações, consulte CHANGELOG
e Perguntas frequentes sobre o Redisson.
Outras observações:
- O Redisson usa como padrão a estratégia de "leitura da réplica", diferente de alguns outros clientes. Para alterar isso, modifique a configuração 'readMode'.
- O Redisson tem uma estratégia de pool de conexões com configurações mínimas e máximas configuráveis e os valores mínimos padrão são grandes. Os padrões grandes podem contribuir para comportamentos agressivos de reconexão ou "tempestades de conexão". Para reduzir o risco, considere o uso de menos conexões porque você pode fazer pipeline com eficiência de comandos ou lotes de comandos em algumas conexões.
- O Redisson tem um tempo limite de conexão ocioso padrão de 10 segundos, o que leva a mais fechamentos e reaberturas de conexões do que o ideal.
Aqui está uma configuração de linha de base recomendada para o modo de cluster que você pode modificar conforme necessário:
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
Para obter um artigo que demonstra como usar o suporte do Redisson para JCache como o repositório para o estado de sessão HTTP no IBM Liberty no Azure, consulte Usar o Java EE JCache com Open Liberty ou WebSphere Liberty em um cluster do AKS (Serviço de Kubernetes do Azure).
Como usar as bibliotecas de clientes
Além da documentação de referência, você pode encontrar tutoriais que mostram como começar a usar o Azure Managed Redis por meio de diferentes linguagens e clientes de cache.
Para obter mais informações sobre como usar algumas dessas bibliotecas de clientes em tutoriais, confira os seguintes artigos:
- Codificar um aplicativo .NET Framework
- Codificar um aplicativo .NET Core
- Codificar um aplicativo Web ASP.NET
- Criar um aplicativo Web ASP.NET Core
- Codificar um aplicativo Java
- Codificar um aplicativo Node.js
- Codificar um aplicativo Python