Bibliotecas de cliente do Azure Managed Redis (visualização)
O Azure Managed Redis (pré-visualização) baseia-se no popular armazenamento de dados na memória, Redis. O Azure Managed Redis pode ser acessado por uma ampla variedade de clientes Redis para muitas linguagens de programação. Cada biblioteca de cliente tem sua própria API que faz chamadas para o servidor Redis usando comandos Redis, mas as bibliotecas de cliente são criadas para falar com qualquer servidor Redis.
Cada biblioteca de cliente mantém sua própria documentação de referência. As bibliotecas também fornecem links para obter suporte através da comunidade de desenvolvedores de bibliotecas cliente. A equipe do Azure Managed Redis não é proprietária do desenvolvimento ou do suporte para nenhuma biblioteca cliente.
As recomendações abaixo baseiam-se na popularidade e na existência ou não de uma comunidade online ativa para apoiar e responder às suas perguntas. Recomendamos apenas usar a versão mais recente disponível e atualizar regularmente à medida que novas versões se tornam disponíveis. Essas bibliotecas estão em desenvolvimento ativo e muitas vezes lançam novas versões com melhorias de confiabilidade e desempenho.
Biblioteca de clientes | Idioma | Repositório GitHub | Documentação |
---|---|---|---|
StackExchange.Redis | C#/.NET | Ligação | Mais informações aqui |
Lettuce | Java | Ligação | Mais informações aqui |
Jedis | Java | Ligação | |
node_redis | Node.js | Ligação | |
Redisson | Java | Ligação | Mais informações aqui |
Ioredis | Node.js | Ligação | Mais informações aqui |
Nota
Seu aplicativo pode usar qualquer biblioteca de cliente compatível com o Redis de código aberto para se conectar à sua instância do Azure Managed Redis.
Escolhendo a biblioteca de cliente certa com base em sua política de clustering
O Azure Managed Redis dá suporte à política de cluster Enterprise e à política de clustering OSS. Veja mais informações aqui (adicionar link para informações de política de clustering). Todas as bibliotecas de cliente funcionam com sua instância Redis com a política de cluster Enterprise. No entanto, se você estiver usando a política de cluster OSS, verifique se a biblioteca de cliente escolhida oferece suporte à conexão com instâncias Redis clusterizadas.
Comandos bloqueados
A configuração e o gerenciamento de instâncias do Azure Managed Redis são gerenciados pela Microsoft, que desabilita os comandos a seguir por padrão. Para obter mais informações sobre comandos bloqueados, consulte Compatibilidade de comandos de gerenciamento de cluster
Comandos multiteclas
Como as instâncias AMR usam uma configuração clusterizada, você pode ver CROSSSLOT
exceções 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 cluster OSS, os comandos de várias teclas 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 cluster Enterprise. Somente os seguintes comandos multichave são permitidos em slots com cluster Enterprise: DEL
, MSET
, MGET
, EXISTS
, UNLINK
e TOUCH
.
Em bancos de dados Ativo-Ativo, os comandos de gravação de várias teclas (DEL
, MSET
UNLINK
, ) só podem ser executados em chaves que estejam no mesmo slot. No entanto, os seguintes comandos de várias teclas são permitidos entre slots em bancos de dados Active-Active: MGET
, EXISTS
e TOUCH
. Para obter mais informações, consulte Clustering de banco de dados.
Comandos bloqueados para a política de cluster Enterprise
- INFORMAÇÕES DO CLUSTER
- AJUDA DO CLUSTER
- RANHURA DE CHAVES DE CLUSTER
- NÓS DE CLUSTER
- CLUSTER SLOTS
Comandos bloqueados para replicação geográfica ativa
- FLUSHALL
- FLUSHDB
Orientação específica da biblioteca do cliente
Para obter informações sobre as práticas recomendadas de orientação específicas da biblioteca de clientes, consulte os seguintes links:
- StackExchange.Redis (.NET)
- Java - Qual cliente devo usar?
- Alface (Java)
- Jedis (Java)
- Redisson (Java)
- Node.js
- PHP
- HiRedisCluster
- ASP.NET Provedor de Estado da Sessão
Redisson (Java)
Recomendamos que você use o redisson 3.14.1 ou superior. As versões mais antigas contêm problemas conhecidos de fuga de ligação que causam problemas após failovers. Monitorar o changelog do Redisson para outros problemas conhecidos podem afetar os recursos usados pelo seu aplicativo. Para obter mais informações, consulteCHANGELOG
e as Perguntas frequentes do Redisson.
Outras notas:
- O padrão Redisson é a estratégia de 'leitura da réplica', ao contrário de alguns outros clientes. Para alterar isso, modifique a configuração 'readMode'.
- 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 grandes padrões podem contribuir para comportamentos agressivos de reconexão ou "tempestades de conexão". Para reduzir o risco, considere o uso de menos conexões, pois você pode canalizar comandos de forma eficiente, ou lotes de comandos, em algumas conexões.
- Redisson tem um tempo limite de conexão ociosa padrão de 10 segundos, o que leva a mais fechamento e reabertura 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 demonstrando como usar o suporte do TRadisson para JCache como o armazenamento para o estado da sessão HTTP no IBM Liberty no Azure, consulte Usar Java EE JCache com Open Liberty ou WebSphere Liberty em um cluster do Serviço Kubernetes do Azure (AKS).
Como usar bibliotecas de cliente
Além da documentação de referência, você pode encontrar tutoriais mostrando como começar a usar o Azure Managed Redis usando diferentes idiomas e clientes de cache.
Para obter mais informações sobre como usar algumas dessas bibliotecas de cliente em tutoriais, consulte os seguintes artigos:
- Codifique um aplicativo .NET Framework
- Codifique um aplicativo .NET Core
- Codifique um aplicativo Web ASP.NET
- Codifique um aplicativo Web ASP.NET Core
- Codifique um aplicativo Java
- Codifique um aplicativo Node.js
- Codifique um aplicativo Python