Librerie client di Redis gestite di Azure (anteprima)
Redis gestito di Azure (anteprima) si basa sull'archivio dati in memoria più diffuso, Redis. È possibile accedere a Redis gestito di Azure da un'ampia gamma di client Redis per molti linguaggi di programmazione. Ogni libreria client ha una propria API che effettua chiamate al server Redis usando i comandi Redis, ma le librerie client vengono compilate per comunicare con qualsiasi server Redis.
Ogni libreria client gestisce la propria documentazione di riferimento. Le librerie forniscono anche collegamenti per ottenere supporto tramite la community per sviluppatori di librerie client. Il team di Redis gestito di Azure non è proprietario dello sviluppo o del supporto per le librerie client.
Le raccomandazioni seguenti sono basate sulla popolarità e se c'è una community online attiva per supportare e rispondere alle tue domande. È consigliabile usare solo la versione più recente disponibile ed effettuare l'aggiornamento a cadenza regolare man mano che diventano disponibili nuove versioni. Queste librerie sono in fase di sviluppo attivo e spesso vengono rilasciate nuove versioni con miglioramenti relativi all'affidabilità e alle prestazioni.
Libreria client | Lingua | Repository GitHub | Documentazione |
---|---|---|---|
StackExchange.Redis | C#/.NET | Collegamento | Altre informazioni sono disponibili qui |
Lettuce | Java | Collegamento | Altre informazioni sono disponibili qui |
Jedis | Java | Collegamento | |
node_redis | Node.js | Collegamento | |
Redisson | Java | Collegamento | Altre informazioni sono disponibili qui |
ioredis | Node.js | Collegamento | Altre informazioni sono disponibili qui |
Nota
L'applicazione può usare qualsiasi libreria client compatibile con Redis open source per connettersi all'istanza di Redis gestita di Azure.
Scelta della libreria client appropriata in base ai criteri di clustering
Redis gestito di Azure supporta i criteri di clustering aziendale e i criteri di clustering del sistema operativo. Per altre informazioni, vedere qui (aggiungere un collegamento alle informazioni sui criteri di clustering). Tutte le librerie client funzionano con l'istanza di Redis con i criteri di clustering aziendale. Tuttavia, se si usano i criteri di clustering oss, assicurarsi che la libreria client scelta supporti la connessione alle istanze di Redis in cluster.
Comandi bloccati
La configurazione e la gestione delle istanze di Redis gestite di Azure sono gestite da Microsoft, che disabilita i comandi seguenti per impostazione predefinita. Per altre informazioni sui comandi bloccati, vedere Compatibilità dei comandi di gestione del cluster
Comandi a più chiavi
Poiché le istanze AMR usano una configurazione in cluster, è possibile che vengano visualizzate CROSSSLOT
eccezioni sui comandi che operano su più chiavi. Il comportamento varia a seconda dei criteri di clustering usati. Se si usano criteri di clustering OSS, i comandi a più chiavi richiedono il mapping di tutte le chiavi allo stesso slot hash.
È inoltre possibile che vengano visualizzati errori CROSSSLOT
con criteri di clustering Enterprise. Solo i comandi a più chiavi seguenti sono consentiti tra slot con clustering Enterprise: DEL
, MSET
, MGET
, EXISTS
, UNLINK
e TOUCH
.
Nei database Active-Active i comandi di scrittura a più chiavi (DEL
, MSET
, UNLINK
) possono essere eseguiti solo su chiavi situate nello stesso slot. Tuttavia, i comandi a più chiavi seguenti sono consentiti tra gli slot nei database Active-Active: MGET
, EXISTS
e TOUCH
. Per altre informazioni, vedere Clustering del database.
Comandi bloccati per i criteri di clustering aziendale
- INFORMAZIONI CLUSTER
- GUIDA DEL CLUSTER
- CLUSTER KEYSLOT
- NODI DEL CLUSTER
- SLOT CLUSTER
Comandi bloccati per la replica geografica attiva
- FLUSHALL
- FLUSHDB
Indicazioni specifiche della libreria client
Per informazioni sulle procedure consigliate specifiche per la libreria client, vedere i collegamenti seguenti:
- StackExchange.Redis (.NET)
- Java: quale client è necessario usare?
- Lettuce (Java)
- Jedis (Java)
- Redisson (Java)
- Node.JS
- PHP
- HiRedisCluster
- Provider di stato della sessione ASP.NET
Redisson (Java)
È consigliabile usare redisson 3.14.1 o versione successiva. Le versioni precedenti contengono problemi noti di perdita di connessione che causano problemi dopo i failover. Monitorare il log delle modifiche di Redisson per altri problemi noti può influire sulle funzionalità usate dall'applicazione. Per altre informazioni, vedereCHANGELOG
e le domande frequenti su Redisson.
Altre note:
- A differenza di altri client, Redisson usa per impostazione predefinita la strategia di lettura dalla replica. Per modificare questa impostazione, modificare l'impostazione di configurazione 'readMode'.
- Redisson ha una strategia di pool di connessioni con impostazioni minime e massime configurabili e i valori minimi predefiniti sono di grandi dimensioni. Le impostazioni predefinite di grandi dimensioni possono contribuire a comportamenti aggressivi di riconnessione o alle cosiddette "tempeste di connessione". Per ridurre tale rischio, è consigliabile usare meno connessioni perché è possibile eseguire in modo efficiente i comandi della pipeline o i batch di comandi in alcune connessioni.
- Redisson ha un timeout di connessione inattiva predefinito di 10 secondi, che porta a una maggiore chiusura e riapertura delle connessioni rispetto a una situazione ideale.
Ecco una configurazione di base consigliata per la modalità cluster che è possibile modificare in base alle esigenze:
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
Per un articolo che illustra come usare il supporto di Redisson per JCache come archivio per lo stato della sessione HTTP in IBM Liberty in Azure, vedere Usare Java EE JCache con Open Liberty o WebSphere Liberty in un cluster del servizio Azure Kubernetes (AKS).
Come usare le librerie client
Oltre alla documentazione di riferimento, è possibile trovare esercitazioni che illustrano come iniziare a usare Azure Managed Redis usando diversi linguaggi e client di cache.
Per altre informazioni sull'uso di alcune di queste librerie client nelle esercitazioni, vedere gli articoli seguenti:
- Scrivere il codice per un'app .NET Framework
- Scrivere il codice per un'app .NET Core
- Scrivere il codice per un'app Web ASP.NET
- Scrivere il codice per un’app Web ASP.NET Core
- Scrivere il codice per un'app Java
- Scrivere il codice per un'app Node.js
- Scrivere il codice per un'app Python