Il cluster Redis usa Sentinel?
Cluster Redis vs. Sentinel 12 maggio 2014
Il seguente elenco contiene risposte alle domande comunemente poste sulla cache di Azure per il clustering Redis.
Configura il clustering Redis per una cache di Azure premium per l’istanza Redis
Azure Cache per Redis offre il cluster Redis come implementato in Redis. Con il cluster Redis, ottieni i seguenti vantaggi:
- La possibilità di dividere automaticamente il set di dati tra più nodi.
- La capacità di continuare le operazioni quando un sottoinsieme dei nodi sta subendo guasti o non è in grado di comunicare con il resto del cluster.
- Più throughput: throughput aumenta linearmente man mano che si aumenta il numero di frammenti.
- Più dimensioni della memoria: aumenta linearmente man mano che si aumenta il numero di frammenti.
Il clustering non aumenta il numero di connessioni disponibili per una cache cluster. Per ulteriori informazioni su dimensioni, throughput e larghezza di banda con cache premium, consultare la scelta del livello giusto.
In Azure, il cluster Redis è offerto come modello primario/replica in cui ogni shard ha una coppia primaria/replica con replica, in cui la replica è gestita da Azure Cache per il servizio Redis.
Azure Cache per Redis ora supporta fino a 30 frammenti (anteprima)
Azure Cache per Redis ora supporta fino a 30 frammenti per cache cluster. Le cache cluster configurate con due repliche possono supportare fino a 20 frammenti e cache cluster configurate con tre repliche possono supportare fino a 15 frammenti.
Limitazioni
- Il limite di shard per le cache con Redis versione 4 è 10.
- Il limite di shard per le cache interessate dal pensionamento del servizio cloud è 10.
- La manutenzione richiederà più tempo poiché ogni nodo richiede circa 20 minuti per aggiornare. Altre operazioni di manutenzione saranno bloccate mentre la cache è in manutenzione.
Impostare il clustering
Il clustering è abilitato Nuova cache di Azure per Redis a sinistra durante la creazione della cache.
- Per creare una cache premium, accedi al portale di Azure e seleziona Crea una risorsa. Oltre a creare cache nel portale di Azure, puoi anche crearle utilizzando modelli di gestori delle risorse, PowerShell o Azure CLI. Per ulteriori informazioni sulla creazione di una cache di Azure per Redis, vedere Crea una cache.
- Sul Nuovo Pagina, selezionare Banche dati e poi seleziona Azure Cache per Redis.
- Sul Nuova cache Redis Pagina, configura le impostazioni per la nuova cache premium.
Collocamento Valore suggerito Descrizione Nome DNS Immettere un nome univoco a livello globale. Il nome della cache deve essere una stringa tra 1 e 63 caratteri. La stringa può contenere solo numeri, lettere o trattini. Il nome deve iniziare e terminare con un numero o una lettera e non può contenere trattini consecutivi. La tua istituzione di cache Nome host sarà .Redis.cache.finestre.netto. Sottoscrizione A discesa e seleziona l’abbonamento. L’abbonamento in base al quale creare questa nuova cache di Azure per l’istanza di Redis. Gruppo di risorse A discesa e selezionare un gruppo di risorse o selezionare Creare nuovo e immettere un nuovo nome del gruppo di risorse. Nome per il gruppo di risorse in cui creare la cache e altre risorse. Mettendo tutte le risorse dell’app in un gruppo di risorse, puoi facilmente gestirle o eliminarle insieme. Posizione Discesa e seleziona una posizione. Seleziona una regione vicino ad altri servizi che utilizzerà la cache. Tipo di cache A discesa e selezionare una cache premium per configurare le funzionalità premium. Per i dettagli, vedere Azure Cache per i prezzi Redis. Il livello dei prezzi determina le dimensioni, le prestazioni e le funzionalità disponibili per la cache. Per ulteriori informazioni, consultare Azure Cache per Redis Panoramica. - Seleziona il Networking scheda o selezionare il file Networking pulsante nella parte inferiore della pagina.
- Nel Networking Scheda, seleziona il metodo di connettività. Per le istanze della cache premium, è possibile connettersi pubblicamente, tramite indirizzi IP pubblici o endpoint di servizio o privatamente, utilizzando un endpoint privato.
- Seleziona il Avanti: Avanzato scheda o selezionare il file Avanti: Avanzato pulsante nella parte inferiore della pagina.
- Nel Avanzate Scheda per un’istanza di cache premium, configurare le impostazioni per la porta non TLS, il clustering e la persistenza dei dati. Per abilitare il clustering, selezionare Abilitare. Puoi avere fino a 10 frammenti nel cluster. Dopo aver selezionato Abilitare, Far scorrere il cursore o digitare un numero tra 1 e 10 per Conta dei frammenti e seleziona OK. Ogni frammento è una coppia cache primaria/replica gestita da Azure e la dimensione totale della cache viene calcolata moltiplicando il numero di frammenti per la dimensione della cache selezionata nel livello dei prezzi. Una volta il
Domande uniche:
- Quali sono i vantaggi dell’utilizzo del cluster Redis?
- Il clustering può aumentare il numero di connessioni disponibili per una cache cluster?
- Quanti frammenti fa la cache di Azure per Redis ora supporta per le cache cluster?
- Qual è il limite di frammenti per le cache con Redis versione 4?
- Qual è il limite di frammenti per le cache interessate dal pensionamento del servizio cloud?
- Quanto tempo impiega la manutenzione per un nodo in una cache cluster?
- Come posso impostare il clustering per una cache di Azure premium per l’istanza di Redis?
- Quali sono i limiti del clustering Redis nella cache di Azure per Redis?
- Quali sono i passaggi per creare una cache premium nella cache di Azure per Redis?
- Quanti frammenti può una cache cluster con due repliche?
- Quanti frammenti può una cache cluster con tre repliche?
- Cosa rappresenta ogni frammento in un cluster Redis?
- Come viene gestita la replica in un cluster Redis in Azure Cache per Redis?
- Quali metodi di autenticazione sono disponibili per la connessione a una cache premium nella cache di Azure per Redis?
- Quali fattori dovrebbero essere considerati quando si sceglie la dimensione della cache e il livello dei prezzi nella cache di Azure per Redis?
Risposta: L’uso del cluster Redis offre la possibilità di dividere automaticamente il set di dati tra più nodi, continuare le operazioni quando un sottoinsieme dei nodi sta vivendo guasti o non è in grado di comunicare con il resto del cluster e ottenere più throughput e dimensioni della memoria man mano che si aumenta il numero di frammenti.
Risposta: No, il clustering non aumenta il numero di connessioni disponibili per una cache cluster.
Risposta: Azure Cache per Redis ora supporta fino a 30 frammenti per cache cluster.
Risposta: Il limite shard per le cache con Redis versione 4 è 10.
Risposta: Il limite del frammento per le cache interessate dal pensionamento del servizio cloud è 10.
Risposta: La manutenzione per un nodo in una cache cluster richiede circa 20 minuti per aggiornare. Altre operazioni di manutenzione saranno bloccate mentre la cache è in manutenzione.
Risposta: Per impostare il clustering, è possibile abilitarlo durante la creazione della cache nel portale di Azure. È necessario selezionare il tipo di cache appropriato, configurare le impostazioni per la cache e abilitare il clustering nella scheda avanzata.
Risposta: Le limitazioni includono un limite di shard di 10 per le cache con Redis versione 4, un limite di frammento di 10 per le cache interessate dalla pensione del servizio cloud e tempi di manutenzione più lunghi per i nodi in una cache cluster.
Risposta: I passaggi includono l’accesso al portale di Azure, la selezione di create una risorsa, la selezione della cache di Azure per Redis, la configurazione delle impostazioni della cache, la selezione delle opzioni di rete appropriate e la configurazione delle impostazioni avanzate come il clustering.
Risposta: Una cache cluster con due repliche può supportare fino a 20 frammenti.
Risposta: Una cache cluster con tre repliche può supportare fino a 15 frammenti.
Risposta: Ogni frammento rappresenta una coppia di cache primarie/replica gestita da Azure nel cluster Redis.
Risposta: La replica in un cluster Redis nella cache di Azure per Redis è gestita da Azure, dove ogni frammento ha una coppia primaria/replica.
Risposta: Puoi connetterti a una cache premium nella cache di Azure per Redis pubblicamente, tramite indirizzi IP pubblici o endpoint di servizio o privatamente, utilizzando un endpoint privato.
Risposta: La dimensione della cache e il livello dei prezzi determinano le dimensioni, le prestazioni e le funzionalità disponibili per la cache. La scelta dovrebbe essere basata sul throughput, la dimensione della memoria e le considerazioni di costo desiderate. Il portale Azure fornisce una guida sulla selezione della dimensione della cache e del livello dei prezzi appropriati.
Cluster Redis vs. Sentinel 12 maggio 2014
Il seguente elenco contiene risposte alle domande comunemente poste sulla cache di Azure per il clustering Redis.
Configura il clustering Redis per una cache di Azure premium per l’istanza Redis
Azure Cache per Redis offre il cluster Redis come implementato in Redis. Con il cluster Redis, ottieni i seguenti vantaggi:
- La possibilità di dividere automaticamente il set di dati tra più nodi.
- La capacità di continuare le operazioni quando un sottoinsieme dei nodi sta subendo guasti o non è in grado di comunicare con il resto del cluster.
- Più throughput: throughput aumenta linearmente man mano che si aumenta il numero di frammenti.
- Più dimensioni della memoria: aumenta linearmente man mano che si aumenta il numero di frammenti.
Il clustering non aumenta il numero di connessioni disponibili per una cache cluster. Per ulteriori informazioni su dimensioni, throughput e larghezza di banda con cache premium, consultare la scelta del livello giusto
In Azure, il cluster Redis è offerto come modello primario/replica in cui ogni shard ha una coppia primaria/replica con replica, in cui la replica è gestita da Azure Cache per il servizio Redis.
Azure Cache per Redis ora supporta fino a 30 frammenti (anteprima)
Azure Cache per Redis ora supporta fino a 30 frammenti per cache cluster. Le cache cluster configurate con due repliche possono supportare fino a 20 frammenti e cache cluster configurate con tre repliche possono supportare fino a 15 frammenti.
Limitazioni
- Il limite di shard per le cache con Redis versione 4 è 10.
- Il limite di shard per le cache interessate dal pensionamento del servizio cloud è 10.
- La manutenzione richiederà più tempo poiché ogni nodo richiede circa 20 minuti per aggiornare. Altre operazioni di manutenzione saranno bloccate mentre la cache è in manutenzione.
Impostare il clustering
Il clustering è abilitato Nuova cache di Azure per Redis a sinistra durante la creazione della cache.
- Per creare una cache premium, accedi al portale di Azure e seleziona Crea una risorsa. Oltre a creare cache nel portale di Azure, puoi anche crearle utilizzando modelli di gestori delle risorse, PowerShell o Azure CLI. Per ulteriori informazioni sulla creazione di una cache di Azure per Redis, vedere Crea una cache.
- Sul Nuovo Pagina, selezionare Banche dati e poi seleziona Azure Cache per Redis.
- Sul Nuova cache Redis Pagina, configura le impostazioni per la nuova cache premium.
Collocamento Valore suggerito Descrizione Nome DNS Immettere un nome univoco a livello globale. Il nome della cache deve essere una stringa tra 1 e 63 caratteri. La stringa può contenere solo numeri, lettere o trattini. Il nome deve iniziare e terminare con un numero o una lettera e non può contenere trattini consecutivi. La tua istituzione di cache Nome host sarà .Redis.cache.finestre.netto. Sottoscrizione A discesa e seleziona l’abbonamento. L’abbonamento in base al quale creare questa nuova cache di Azure per l’istanza di Redis. Gruppo di risorse A discesa e selezionare un gruppo di risorse o selezionare Creare nuovo e immettere un nuovo nome del gruppo di risorse. Nome per il gruppo di risorse in cui creare la cache e altre risorse. Mettendo tutte le risorse dell’app in un gruppo di risorse, puoi facilmente gestirle o eliminarle insieme. Posizione Discesa e seleziona una posizione. Seleziona una regione vicino ad altri servizi che utilizzerà la cache. Tipo di cache A discesa e selezionare una cache premium per configurare le funzionalità premium. Per i dettagli, vedere Azure Cache per i prezzi Redis. Il livello dei prezzi determina le dimensioni, le prestazioni e le funzionalità disponibili per la cache. Per ulteriori informazioni, consultare Azure Cache per Redis Panoramica. - Seleziona il Networking scheda o selezionare il file Networking pulsante nella parte inferiore della pagina.
- Nel Networking Scheda, seleziona il metodo di connettività. Per le istanze della cache premium, è possibile connettersi pubblicamente, tramite indirizzi IP pubblici o endpoint di servizio o privatamente, utilizzando un endpoint privato.
- Seleziona il Avanti: Avanzato scheda o selezionare il file Avanti: Avanzato pulsante nella parte inferiore della pagina.
- Nel Avanzate Scheda per un’istanza di cache premium, configurare le impostazioni per la porta non TLS, il clustering e la persistenza dei dati. Per abilitare il clustering, selezionare Abilitare. Puoi avere fino a 10 frammenti nel cluster. Dopo aver selezionato Abilitare, Far scorrere il cursore o digitare un numero tra 1 e 10 per Conta dei frammenti e seleziona OK. Ogni frammento è una coppia cache primaria/replica gestita da Azure e la dimensione totale della cache viene calcolata moltiplicando il numero di frammenti per la dimensione della cache selezionata nel livello dei prezzi. Una volta creata la cache, ti connetti e la usi proprio come una cache non cluster. Redis distribuisce i dati durante i frammenti della cache. Se la diagnostica è abilitata, le metriche vengono catturate separatamente per ogni frammento e possono essere visualizzate nella cache di Azure per Redis a sinistra.
- Seleziona il Avanti: tag scheda o selezionare il file Avanti: tag pulsante nella parte inferiore della pagina.
- Facoltativamente, nel Tag Scheda, immettere il nome e il valore se si desidera classificare la risorsa.
- Selezionare Recensione + Crea. Sei portato alla scheda Review + Crea in cui Azure convalida la configurazione.
- Dopo che viene visualizzato il messaggio passato di convalida verde, selezionare Creare.
Ci vuole un po ‘per la creazione della cache. È possibile monitorare i progressi sulla cache di Azure per Redis Panoramica pagina. Quando Stato spettacoli come Corsa, La cache è pronta per l’uso.
Ci sono alcune differenze minori richieste nell’applicazione client quando è configurato il clustering. Per ulteriori informazioni, vedere, devo apportare modifiche alla mia applicazione client per utilizzare il clustering?
Per il codice di esempio sul lavoro con il clustering con StackExchange.Client Redis, vedi il clustering.CS porzione del campione di Hello World.
Modificare la dimensione del cluster su una cache in esecuzione
Per modificare la dimensione del cluster su una cache premium creata in precedenza ed è già in esecuzione con il clustering abilitato, seleziona Dimensione del cluster Dal menu delle risorse.
Per modificare la dimensione del cluster, utilizzare il cursore o digitare un numero tra 1 e 10 in Conta dei frammenti casella di testo. Quindi, seleziona OK salvare.
L’aumento della dimensione del cluster aumenta la throughput massima e la dimensione della cache. Aumentare la dimensione del cluster non aumenta il massimo. Connessioni disponibili per i client.
Il ridimensionamento di un cluster esegue il comando Migrate, che è un comando costoso, quindi per un impatto minimo, prendi in considerazione l’esecuzione di questa operazione durante le ore non di punta. Durante il processo di migrazione, vedrai un picco nel caricamento del server. Il ridimensionamento di un cluster è un processo a lungo termine e la quantità di tempo impiegata dipende dal numero di chiavi e dimensioni dei valori associati a tali chiavi.
FAQ di clustering
Il seguente elenco contiene risposte alle domande comunemente poste sulla cache di Azure per il clustering Redis.
- Devo apportare modifiche alla mia applicazione client per utilizzare il clustering?
- Come vengono distribuite le chiavi in un cluster?
- Qual è la dimensione della cache più grande che posso creare?
- Fare tutti i client Redis Support Clustering?
- Come mi connetto alla mia cache quando il clustering è abilitato?
- Posso connettermi direttamente ai singoli frammenti della mia cache?
- Posso configurare il clustering per una cache precedentemente creata?
- Posso configurare il clustering per una cache di base o standard?
- Posso usare il clustering con Redis Asp.Net Session State and Output Caching Provider?
- Sto ricevendo eccezioni di mossa quando uso StackExchange.Redis e clustering, cosa dovrei fare?
- [Il ridimensionamento utilizzando clustering aiuto per aumentare il numero di connessioni client supportate?] (#Si ridimensiona utilizzando il clustering Aiuto per aumentare il numero di connessioni client supportate?)
Devo apportare modifiche alla mia applicazione client per utilizzare il clustering?
- Quando il clustering è abilitato, è disponibile solo il database 0. Se l’applicazione client utilizza più database e cerca di leggere o scrivere in un database diverso da 0, viene lanciata la seguente eccezione: Eccezione non gestita: StackExchange.Redis.RecisconnectionException: protocolfo su Get —> StackExchange.Redis.RedompomManDException: più database non sono supportati su questo server; Impossibile passare al database: 6 Per ulteriori informazioni, consultare la specifica del cluster Redis – Sotto sottoinsieme.
- Se stai usando StackExchange.Redis, devi usare 1.0.481 o più tardi. Si connette alla cache utilizzando gli stessi endpoint, porte e chiavi utilizzati durante la connessione a una cache in cui il clustering è disabilitato. L’unica differenza è che tutte le letture e le scritture devono essere fatte nel database 0. Altri clienti possono avere requisiti diversi. Vedi Do Esegui tutti i client Redis Support Clustering?
- Se l’applicazione utilizza più operazioni chiave in prestito in un singolo comando, tutte le chiavi devono trovarsi nello stesso frammento. Per individuare le chiavi nello stesso frammento, vedi come vengono distribuite le chiavi in un cluster?
- Se stai usando Redis ASP.Net Session State Provider, è necessario utilizzare 2.0.1 o superiore. Vedi posso usare il clustering con Redis Asp.Net Session State and Output Caching Provider?
Come vengono distribuite le chiavi in un cluster?
Secondo la documentazione del modello di distribuzione di Redis Keys: lo spazio chiave è diviso in 16.384 slot. Ogni chiave viene hash e assegnato a uno di questi slot, che sono distribuiti attraverso i nodi del cluster. È possibile configurare quale parte della chiave viene hash per garantire che più chiavi si trovino nello stesso frammento usando tag hash.
- Chiavi con un tag hash – se una parte della chiave è racchiusa in < and >, Solo quella parte della chiave viene hash allo scopo di determinare lo slot hash di una chiave. Ad esempio, le tre chiavi seguenti si troverebbero nello stesso frammento: 1, 2 e 3 poiché solo la parte chiave del nome viene hash. Per un elenco completo delle specifiche dei tag hash di chiavi, vedi tag di tasti hash.
- Chiavi senza un tag hash: l’intero nome chiave viene utilizzato per hashing, risultando in una distribuzione statisticamente uniforme attraverso i frammenti della cache.
Per le migliori prestazioni e throughput, ti consigliamo di distribuire in modo uniforme le chiavi. Se stai utilizzando le chiavi con un tag hash, è responsabilità dell’applicazione per garantire che le chiavi siano distribuite uniformemente.
Per il codice di esempio sul lavoro con i tasti di clustering e localizzazione nello stesso frammento con StackExchange.Client Redis, vedi il clustering.CS porzione del campione di Hello World.
Qual è la dimensione della cache più grande che posso creare?
La dimensione della cache più grande che puoi avere è 1.2 TB. Questo risultato è una cache P5 cluster con 10 frammenti. Per ulteriori informazioni, consultare Azure Cache per i prezzi Redis.
Fare tutti i client Redis Support Clustering?
Molte librerie di clienti supportano il clustering Redis ma non tutti. Controlla la documentazione per la libreria che stai utilizzando per verificare che tu stia utilizzando una libreria e una versione che supportano il clustering. StackExchange.Redis è una libreria che supporta il clustering, nelle sue versioni più recenti. Per ulteriori informazioni su altri client, consultare il ridimensionamento con il cluster Redis.
Il protocollo di clustering Redis richiede a ciascun client di connettersi a ciascun frammento direttamente in modalità di clustering e definisce anche nuove risposte di errore come “NA” NA “Crossslots”. Quando si tenta di utilizzare una libreria client che non supporta il clustering, con una cache in modalità cluster, il risultato può essere molte eccezioni di reindirizzamento spostate o semplicemente interrompere l’applicazione, se stai facendo richieste multi-chiavi incrociato.
Se stai usando StackExchange.Redis come cliente, assicurati di utilizzare l’ultima versione di StackExchange.Redis 1.0.481 o successivamente per il clustering funzionare correttamente. Per ulteriori informazioni su eventuali problemi con le eccezioni di mossa, consultare le eccezioni di mossa.
Come mi connetto alla mia cache quando il clustering è abilitato?
Puoi connetterti alla cache utilizzando gli stessi endpoint, porte e chiavi che usi quando si collega a una cache che non ha il clustering abilitato. Redis gestisce il clustering sul backend in modo da non doverlo gestirlo dal tuo cliente.
Posso connettermi direttamente ai singoli frammenti della mia cache?
Il protocollo di clustering richiede al client di effettuare le connessioni di shard corrette, quindi il client dovrebbe effettuare connessioni a condivisione per te. Detto questo, ogni frammento è costituito da una coppia di cache primarie/replica, nota collettivamente come un’istanza della cache. È possibile connettersi a queste istanze della cache utilizzando l’utilità Redis-Cli nel ramo instabile del repository Redis su GitHub. Questa versione implementa il supporto di base quando è iniziata con l’interruttore -c. Per ulteriori informazioni, consultare il tutorial del cluster Redis.
Per non TLS, utilizzare i seguenti comandi.
Redis-cli.exe –h> -p 13000 (per connettersi all'istanza 0) Redis -cli.exe –h> -p 13001 (per connettersi all'istanza 1) Redis -cli.exe –h> -p 13002 (per connettersi all'istanza 2) . Redis-cli.exe –h> -p 1300n (per connettersi all'istanza n)
Per TLS, sostituire 1300n con 1500N .
Posso configurare il clustering per una cache precedentemente creata?
SÌ. Innanzitutto, assicurati che la cache sia premium ridimensionandola. Successivamente, è possibile visualizzare le opzioni di configurazione del cluster, inclusa un’opzione per abilitare il cluster. Modificare la dimensione del cluster dopo la creazione della cache o dopo aver abilitato il clustering per la prima volta.
Non puoi annullare il clustering abilitante. E una cache con clustering abilitato e solo un frammento si comporta diversamente di una cache della stessa dimensione con NO clustering.
Posso configurare il clustering per una cache di base o standard?
Il clustering è disponibile solo per le cache premium.
Posso usare il clustering con Redis Asp.Net Session State and Output Caching Provider?
- Provider di cache di output Redis – Nessuna modifica richiesta.
- Provider di stato di Redis Session – Per utilizzare il clustering, è necessario utilizzare RedissessionStateProvider 2.0.1 o superiore o un’eccezione viene lanciata, che è un cambiamento di rottura. Per ulteriori informazioni, consultare V2.0.0 Breaking Change Details.
Sto ricevendo eccezioni di mossa quando uso StackExchange.Redis e clustering, cosa dovrei fare?
Se stai usando StackExchange.Redis e Ricevi muovi eccezioni quando si utilizza il clustering, assicurati di utilizzare StackExchange.Redis 1.1.603 o più tardi. Per istruzioni sulla configurazione del tuo .Applicazioni nette per utilizzare StackExchange.Redis, vedi Configura i client Cache.
Il ridimensionamento utilizzando clustering aiuto per aumentare il numero di connessioni client supportate?
No, il ridimensionamento utilizzando il clustering e l’aumento del numero di frammenti non aiuta ad aumentare il numero di connessioni client supportate.
Prossimi passi
Ulteriori informazioni sulla cache di Azure per le funzionalità Redis.
Cluster Redis vs. Sentinella 12 maggio 2014
Sentinel e cluster sono per usi diversi, questa guida spiegherà le differenze e quando usarne ciascuna.
Quali sono?
Redis ha due categorie principali di esecuzione di più istanze. C’è “Replicazione standard” e in arrivo “Cluster Redis”. Per gestire la replica usi Sentinel. Il cluster gestisce principalmente se stesso ma è possibile combinare i due per una replica estesa, se complessa, HA +.
Questa guida ti guiderà attraverso ciascuno per sviluppare una migliore comprensione delle differenze e dei casi d’uso per ciascuno. Inizieremo con Redis Cluster. Si noti che al momento della scrittura di questa guida, il cluster non è ancora in un comunicato di produzione e i dettagli possono cambiare.
Cluster Redis
Il cluster Redis è principalmente un mezzo per raschiare automaticamente più istanze. È previsto in Redis 3.0.
Cosa fa
Il cluster è Redis che è configurato per diffondere i dati su un determinato numero di istanze Redis. Per gestire quali dati sono dove, il cluster ha una specifica di protocollo che consente ai client di parlare con qualsiasi master nel cluster. Se la chiave operosa viene memorizzata a livello locale, i dati vengono restituiti come normali.
Tuttavia, se i dati vengono archiviati su un nodo diverso, viene restituita una risposta spostata dicendo al cliente con quale padrone di cui parlare invece parlasse. Questo meccanismo richiede quindi il supporto sul lato client per il cluster
Si noti che il cluster non fornisce direttamente HA o replica.
A cosa serve il cluster
I casi d’uso per il cluster si evolvono attorno allo spargimento del carico (in particolare scrive) e al superamento delle capacità di memoria a istanza singola. Se hai 2t di dati, non vuoi scrivere il codice di frammento nel codice di accesso, ma hai una libreria che supporta il cluster, probabilmente desideri Redis Cluster. Se hai un volume di scrittura elevato per una vasta gamma di chiavi e la libreria client supporta il cluster, anche il cluster sarà adatto.
Redis Sentinel
Redis supporta più schiavi replicando i dati da un nodo principale. Ciò fornisce un nodo di backup che ha i tuoi dati su di esso, pronto a servire i dati. Tuttavia, al fine di fornire il failover automatizzato è necessario uno strumento. Per Redis questo strumento si chiama Sentinel. In questo documento useremo il termine “pod” Descrivere un maestro di Redis con uno o più schiavi; Questo evita la confusione con il termine “grappolo”.
Cosa fa
Sentinel è configurato per indicare un maestro è necessario gestire. Quindi interrogherà il master per tutti gli schiavi connessi. Una volta determinata la configurazione del pod, procederà a monitorare ciascun nodo e, dopo la conferma di un maestro in giù, promuoverà uno schiavo e riconfigurerà ogni schiavo per indicare il nuovo maestro.
Per utilizzarlo per la gestione della connessione client trasparente dovrai mettere il nodo principale dietro un IP virtuale o un bilanciamento del carico che conosce o può essere configurato dinamicamente, quale nodo è il master.
L’altra opzione è utilizzare un client che ha implementato il supporto Sentinel.
Sentinel utilizza un meccanismo di voto+quorum, quindi sono necessari almeno tre nodi Sentinel che lavorano insieme. Mi riferisco a questo come una costellazione di sentinella. A ogni pod viene dato un nome nella costellazione. Ciò fornisce un’ulteriore capacità se si utilizza il codice client con capacità di Sentinel. In questo scenario puoi usare Sentinel per la scoperta del servizio.
A cosa serve
Il caso d’uso standard per Sentinel è un singolo master con 1-2 schiavi pronti per essere promossi. Il sentinella viene quindi utilizzato per mantenere un nodo che gestisce il traffico dei dati in ogni momento, entro i limiti del test di alità.
In alternativa, si potrebbe distribuire una singola sentinella e avere ogni master autonomo o ogni pod connesso ad essa per fornire scoperta del servizio. In questo scenario forse hai un “webcache” istanza e a “metrica” esempio. Con un supporto lato client appropriato, le applicazioni si connetterebbero all’istanza Sentinel e otterrebbero le informazioni di connessione per entrambi “webcache” O “metrica” senza bisogno di informazioni di connessione uniche per ciascun client.
Che usare
Se i requisiti della memoria superano la memoria del sistema o devi distribuire le scritture su più nodi per mantenere i livelli di prestazione, il cluster Redis è dove dovresti guardare.
Se stai cercando un’alta disponibilità, tu’VOGLIO ASSERVARE DI PIÙ IN DISPLICAZIONE SENTINEL.
Lettura aggiuntiva
- Usando Sentinel
- Performance elevate e scalabilità lineare per un massimo di 1.000 nodi. Non ci sono proxy, viene utilizzata la replica asincrona e non vengono eseguite operazioni di unione su valori.
- Un grado accettabile di sicurezza scritta. Il sistema cerca di conservare tutte le scritture provenienti da clienti connessi alla maggior parte dei nodi principali. Di solito, ci sono piccole finestre di tempo in cui le scritture riconosciute possono essere perse.
- È in grado di sopravvivere alle partizioni in cui la maggior parte dei nodi principali è raggiungibile e c’è almeno uno schiavo raggiungibile per ogni nodo principale che non è più raggiungibile.
- Bind: per impostazione predefinita, se non è specificato, Redis ascolta per connessioni da tutte le interfacce di rete disponibili sul server. È possibile ascoltare solo una o più interfacce selezionate.
- Modalità protetta: la modalità protetta è un livello di protezione della sicurezza, al fine di evitare che le istanze Redis lasciate aperte su Internet siano accessibili e sfruttate. Per impostazione predefinita la modalità protetta è abilitata.
- Porta: accetta connessioni sulla porta specificata, il valore predefinito è 6379. Se la porta 0 è specificata Redis non ascolterà su una presa TCP.
- Abilitato al cluster: abilita/disabilita il supporto del cluster Redis su un nodo Redis specifico. Se è disabilitato, l’istanza inizia come un’istanza autonoma come al solito.
- Cluster-Config-File: il file in cui un nodo cluster Redis persiste automaticamente la configurazione del cluster ogni volta che c’è una modifica, al fine di poterlo rileggere all’avvio.
- cluster-node-timeout: la quantità massima di tempo (in millisecondi) un nodo cluster Redis può essere non disponibile, senza che sia considerato fallito. Se un nodo principale non è raggiungibile per più del tempo specificato, non sarà riuscito dai suoi schiavi.
- Appendonly: il solo file Append è una modalità di persistenza alternativa che fornisce una durata molto migliore. Ad esempio utilizzando la politica FSYNC dati predefinita, Redis può perdere solo un secondo delle scritture in un errore del server come un’interruzione di corrente o una singola scrittura se qualcosa non va nel processo Redis stesso, ma il sistema operativo è ancora in esecuzione correttamente.
- Redis Community
- Replicazione Redis
- Tutorial del cluster Redis
- Specifica del cluster Redis
- Introduzione a Redis Cluster Sharding
- Come configurare il cluster Redis dalla sorgente
- Replication Redis vs sharding
- Replica del cluster Redis vs Redis
- Redis Sentinel & Redis Cluster – Cosa?
- Di cosa hai bisogno la distribuzione di Redis?
Bill Anderson [about]
Bill Anderson è uno scienziato pazzo che lavora su modi strani, ma interessanti e potenti di usare Redis. Nel suo tempo libero gli piace giocare a Minecraft con sua moglie e due figlie.
Installazione del cluster Redis (modalità cluster abilitata) con failover automatico
Redis è un dataStore in memoria open source utilizzato come database o cache. Ha una replica integrata e fornisce un’alta disponibilità tramite Redis Sentinel e il partizionamento automatico con il cluster Redis. In questo blog vedremo cosa è e come installare un cluster Redis.
Cos’è il cluster Redis?
Il cluster Redis è una funzione Redis integrata che offre sharding automatici, replica e alta disponibilità che è stata precedentemente implementata utilizzando Sentinels. Ha la possibilità di dividere automaticamente il set di dati tra più nodi e di continuare le operazioni quando un sottoinsieme dei nodi sta vivendo guasti o non è in grado di comunicare con il resto del cluster.
Gli obiettivi del cluster Redis sono:
Ora che sappiamo di cosa si tratta, lascia’S Vedi come installarlo.
Come installare il cluster Redis
Secondo la documentazione ufficiale, il cluster minimo che funziona come previsto richiede di contenere almeno tre nodi principali, ma in realtà la raccomandazione è di avere un cluster a sei nodi con tre maestri e tre nodi per gli schiavi, quindi lascia’S Fare quello.
Per questo esempio, installeremo il cluster Redis su CentOS 8 usando la seguente topologia:
Maestro 1: 10.10.10.121 Master 2: 10.10.10.122 Master 3: 10.10.10.123 Slave 1: 10.10.10.124 Slave 2: 10.10.10.125 Slave 3: 10.10.10.126
I seguenti comandi devono essere eseguiti in tutti i nodi, maestro e slave.
Per impostazione predefinita, durante la creazione di questo post sul blog, la versione Redis disponibile su CentOS 8 è 5.0.3, quindi lascia’s Utilizzare il repository Remi per avere la versione 6 stabile corrente.2:
$ DNF Installa https: // rpms.remirepo.Net/Enterprise/Remi-release-8.RPM -y $ DNF Modulo Installa Redis: Remi -6.2 -y
Abilita il servizio Redis:
$ SystemCtl Abilita Redis.servizio
Per configurare il cluster Redis è necessario modificare il file di configurazione Redis /etc /Redis.conf e modifica i seguenti parametri:
$ vi /etc /redis.Conf Bind 10.10.10.121 #Reponi questo indirizzo IP all'indirizzo IP locale su ciascun nodo MODO PROTECTI NO PORTA 7000 SÌ ENABILI SÌ CLUSTER-CONFIG NODI.conf cluster-node-timeout 15000 appendonly Sì
Questi parametri sono:
Ogni nodo cluster Redis richiede due connessioni TCP aperte. La normale porta TCP Redis utilizzata per servire i client, per impostazione predefinita 6379 e la porta ottenuta aggiungendo 10000 alla porta dati, quindi per impostazione predefinita 16379. Questa seconda porta è assegnata per il bus cluster, che viene utilizzato dai nodi per il rilevamento di errori, l’aggiornamento della configurazione, l’autorizzazione del failover e altro ancora.
Ora puoi iniziare il servizio Redis:
$ SystemCtl Avvia Redis.servizio
Nel file di registro Redis, per impostazione predefinita/var/log/Redis/Redis.registro, vedrai questo:
76: M 02 luglio 2021 18:06:17.658 * Pronto ad accettare le connessioni
Ora tutto è pronto, è necessario creare il cluster usando lo strumento Redis-Cli. Per questo, è necessario eseguire il seguente comando in un solo nodo:
$ Redis-cli-Cluster Crea 10.10.10.121: 7000 10.10.10.122: 7000 10.10.10.123: 7000 10.10.10.124: 7000 10.10.10.125: 7000 10.10.10.126: 7000-Cluster-Replicas 1
In questo comando, è necessario aggiungere l’indirizzo IP e la porta Redis per ciascun nodo. I tre primi nodi saranno i nodi principali e il resto gli schiavi. Il cluster-replicas 1 significa un nodo slave per ciascun master. L’output di questo comando assomigliarà a questo:
>>> Eseguendo l'allocazione delle slot hash su 6 nodi. Master [0] -> Slot 0 - 5460 Master [1] -> Slot 5461 - 10922 Master [2] -> Slot 10923 - 16383 Aggiunta di replica 10.10.10.125: da 7000 a 10.10.10.121: 7000 Aggiunta di replica 10.10.10.126: da 7000 a 10.10.10.122: 7000 Aggiunta di replica 10.10.10.124: da 7000 a 10.10.10.123: 7000 M: 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121: 7000 slot: [0-5460] (5461 slot) Master M: 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122: 7000 slot: [5461-10922] (5462 slot) Master M: 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: 7000 slot: [10923-16383] (5461 slot) Master S: 8675CD30FDD4EFA088634E50FBD5C0675238A35E 10.10.10.124: 7000 replicati 22DE56650B3714C1C42FC0D120F80C66C24D8795 S: AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: 7000 replicati 4394D8EB03DE1F524B56CB385F0EB9052CE65283 S: 184ADA329264E994781412F3986C425A248F386E 10.10.10.126: 7000 replicati 5cc0f693985913c553c6901e102ea3cb8d6678bd posso impostare la configurazione sopra? (digitare "sì" per accettare):
Dopo aver accettato la configurazione, verrà creato il cluster:
>>> Configurazione dei nodi Aggiornata >>> Assegna un'epoca di configurazione diversa a ciascun nodo >>> Invia cluster Meet Messaggi per unire il cluster in attesa che il cluster si unisca . >>> Esecuzione del controllo del cluster (usando il nodo 10.10.10.121: 7000) M: 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121: 7000 slot: [0-5460] (5461 slot) Master 1 Replica aggiuntiva (S) S: 184ADA329264E994781412F3986C425A248F386E 10.10.10.126: 7000 slot: (0 slot) replicati slave 5cc0f693985913c553c6901e102ea3cb8d6678bd m: 5cc0f693985913c553c6901e102ea3cb8d6678bd 10.10.10.122: 7000 slot: [5461-10922] (5462 slot) Master 1 Replica aggiuntiva M: 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: 7000 slot: [10923-16383] (5461 slot) Master 1 Replica aggiuntiva (S) S: AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: 7000 slot: (0 slot) replicati di slave 4394d8eb03de1f524b56cb385f0eb9052ce65283 s: 8675cd30fdd4fa088634e50fbd5c0675238a35e 10.10.10.124: 7000 slot: (0 slot) replicati slave 22DE56650B3714C1C42FC0D120F80C66C24D8795 [OK] Tutti i nodi concordano sulla configurazione delle slot. >>> Controlla gli slot aperti. >>> Controlla la copertura delle slot. [OK] Tutti i 16384 slot coperti.
Se dai un’occhiata al file di registro principale, vedrai:
3543: m 02 luglio 2021 19:40:23.250 # Configurapoch Imposta su 1 tramite cluster set-config-epoch 3543: m 02 luglio 2021 19:40:23.258 # Indirizzo IP per questo nodo aggiornato a 10.10.10.121 3543: M 02 luglio 2021 19:40:25.281 * replica 10.10.10.125: 7000 chiede la sincronizzazione 3543: M 02 luglio 2021 19:40:25.281 * Partial resynchronization not accepted: Replication ID mismatch (Replica asked for '1f42a85e22d8a19817844aeac14fbb8201a6fc88', my replication IDs are '9f8db08a36207c17800f75487b193a624f17f091' and '0000000000000000000000000000000000000000') 3543:M 02 Jul 2021 19:40:25.281 * Backlog di replica Creato, i miei nuovi ID replica sono '21ABFCA3B9405356569B2684C6D68C0D2EC19B3B' e '000000000000000000000000000000000000000000' 3543: M 02 JUL 2021 19:40:25.281 * Avvio di BGSAVE per la sincronizzazione con il bersaglio: disco 3543: M 02 luglio 2021 19:40:25.284 * Risparmio di fondo avviato da PID 3289 3289: C 02 luglio 2021 19:40:25.312 * db salvato su disco 3289: c 02 luglio 2021 19:40:25.313 * RDB: 0 MB di memoria utilizzata da copia-su-write 3543: m 02 luglio 2021 19:40:25.369 * Risparmio di fondo terminato con successo 3543: M 02 luglio 2021 19:40:25.369 * Sincronizzazione con replica 10.10.10.125: 7000 successe 3543: M 02 luglio 2021 19:40:28.180 # Cluster State Changed: OK
E la replica’S file di registro:
11531: M 02 luglio 2021 19:40:23.253 # Configurapoch Imposta su 4 tramite cluster set-config-epoch 11531: m 02 luglio 2021 19:40:23.357 # Indirizzo IP per questo nodo aggiornato a 10.10.10.124 11531: S 02 luglio 2021 19:40:25.277 * Prima di trasformarsi in una replica, usando i miei parametri master per sintetizzare un maestro memorizzato nella cache: potrei essere in grado di sincronizzare con il nuovo maestro con un solo trasferimento parziale. 11531: S 02 luglio 2021 19:40:25.277 * Connessione a Master 10.10.10.123: 7000 11531: S 02 luglio 2021 19:40:25.277 * Master Replica Sync è iniziata 11531: S 02 luglio 2021 19:40:25.277 # Cluster State modificato: OK 11531: S 02 luglio 2021 19:40:25.277 * Connetti non bloccanti per la sincronizzazione ha sparato l'evento. 11531: S 02 luglio 2021 19:40:25.278 * Master ha risposto a ping, la replica può continuare. 11531: S 02 luglio 2021 19:40:25.278 * Prova una risincronizzazione parziale (richiesta 7D8DA986C7E699FE33002D10415F98E91203DE01: 1). 11531: S 02 luglio 2021 19:40:25.279 * RESYNC completo da Master: 99A8DEFC35B459B7B732779333AA526D3F72AE76E: 0 11531: S 02 luglio 2021 19:40:25.279 * Scartare Master State precedentemente memorizzata nella cache. 11531: S 02 luglio 2021 19:40:25.299 * Sincronizzazione della replica principale: ricezione di 175 byte dal master al disco 11531: s 02 luglio 2021 19:40:25.299 * Sincronizzazione della replica principale: scaricare vecchi dati 11531: S 02 luglio 2021 19:40:25.300 * Sincronizzazione della replica principale: caricamento di DB in memoria 11531: S 02 luglio 2021 19:40:25.306 * Caricamento RDB prodotto dalla versione 6.2.4 11531: S 02 luglio 2021 19:40:25.306 * RDB Età 0 secondi 11531: S 02 luglio 2021 19:40:25.306 * Utilizzo della memoria RDB quando creato 2.60 MB 11531: S 02 luglio 2021 19:40:25.306 * Sincronizzazione della replica principale: Finita con successo 11531: S 02 luglio 2021 19:40:25.308 * APPID SOTTO SOLO RISCRITTURA DI FILE Avviata da PID 2487 11531: S 02 luglio 2021 19:40:25.342 * AOF Rewrite Child chiede di smettere di inviare diffs. 2487: c 02 luglio 2021 19:40:25.342 * Il genitore ha accettato di interrompere l'invio di differenze. Finalizzare AOF. 2487: c 02 luglio 2021 19:40:25.342 * Concatenating 0.00 MB di AOF Diff ricevuto dal genitore. 2487: c 02 luglio 2021 19:40:25.343 * Sync Append Only File Rewrite eseguita 2487: C 02 luglio 2021 19:40:25.343 * AOF Riscrivi: 0 mb di memoria usata da copia-on-write 11531: s 02 luglio 2021 19:40:25.411 * sfondo aof riscrittura terminata con successo 11531: s 02 luglio 2021 19:40:25.411 * Diff Residual Parent Fraceva correttamente sull'AOF riscritto (0.00 MB) 11531: S 02 luglio 2021 19:40:25.411 * sfondo aof riscrivere finito correttamente
Monitoraggio dei nodi del cluster Redis
Per conoscere lo stato di ciascun nodo Redis, è possibile utilizzare il seguente comando:
$ Redis -cli -h 10.10.10.121 -P 7000 nodi cluster 184ADA329264E994781412F3986C425A248F386E 10.10.10.126: [Email Protected] Slave 5CC0F693985913C553C6901E102EA3CB8D6678BD 0 1625255155519 2 collegato 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122: [Email Protected] Master - 0 1625255153513 2 collegato 5461-10922 22DE56650B3714C1C42FC0D120F80C66C24D8795 10 10.10.10.123: [Email Protected] Master - 0 1625255151000 3 collegato 10923-16383 AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: [Email Protected] Slave 4394D8EB03DE1F524B56CB385F0EB9052CE65283 0 1625255153000 1 collegato 8675CD30FDD4EFA088634E50FBD5C0675238A35E 10.10.10.124: [Email Protected] Slave 22DE56650B3714C1C42FC0D120F80C66C24D8795 0 1625255154515 3 collegato 4394D8EB03DE1F524B56CB385F0EB9052Ce65283 10.10.10.121: [e -mail protetta] me stesso, master - 0 1625255152000 1 collegato 0-5460
È inoltre possibile filtrare l’uscita utilizzando il comando Grep Linux per verificare solo i nodi principali:
$ Redis -cli -h 10.10.10.121 -P 7000 nodi cluster | Grep Master 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122: [Email Protected] Master - 0 1625255389768 2 collegato 5461-10922 22DE56650B3714C1C42FC0D120F80C66C24D8795 10.10.10.123: [Email Protected] Master - 0 1625255387000 3 collegato 10923-16383 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121: [e -mail protetta] me stesso, master - 0 1625255387000 1 collegato 0-5460
O anche i nodi schiavi:
$ Redis -cli -h 10.10.10.121 -P 7000 nodi cluster | Grep Slave 184ADA329264E994781412F3986C425A248F386E 10.10.10.126: [Email Protected] Slave 5CC0F693985913C553C6901E102EA3CB8D6678BD 0 1625255395795 2 collegato AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: [Email Protected] Slave 4394D8EB03DE1F524B56CB385F0EB9052CE65283 0 1625255395000 1 collegato 8675CD30FDD4EFA088634E50FBD5C0675238A35E 10.10.10.124: [Email Protected] Slave 22DE56650B3714C1C42FC0D120F80C66C24D8795 0 1625255393000 3 collegato
Failover automatico del cluster Redis
Permettere’S Test della funzione di failover automatico nel cluster Redis. Per questo, fermeremo il servizio Redis in un nodo principale e vedremo cosa succede.
Su Master 2 – 10.10.10.122:
$ SYSTEMCTL STOP REDIS $ SYSTEMCTL STATO Redis | Grep Active Active: Inactive (Dead) dal 2021-07-02 19:53:41 UTC; 1h 4 minuti fa
Adesso molla’S Controllare l’output del comando che abbiamo usato nella sezione precedente per monitorare i nodi Redis:
$ Redis -cli -h 10.10.10.121 -P 7000 nodi cluster 184ADA329264E994781412F3986C425A248F386E 10.10.10.126: [Email Protected] Master - 0 1625255654350 7 collegato 5461-10922 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122: [Email Protected] Master, Fail - 1625255622147 1625255621143 2 Disconnesso 22DE56650B3714C1C42FC0D120F80C66C24D8795 10 10.10.10.123: [Email Protected] Master - 0 1625255654000 3 collegato 10923-16383 AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125: [Email Protected] Slave 4394D8EB03DE1F524B56CB385F0EB9052CE65283 0 1625255656366 1 collegato 8675cd30fdd4efa088634e50fbd5c0675238a35e 10.10.10.124: [Email Protected] Slave 22DE56650B3714C1C42FC0D120F80C66C24D8795 0 1625255655360 3 collegato 4394D8EB03DE1F524B56CB385F0EB9052Ce65283 10.10.10.121: [e -mail protetta] me stesso, master - 0 1625255653000 1 collegato 0-5460
Come puoi vedere, uno dei nodi schiavi è stato promosso a padroneggiare, in questo caso, Slave 3 – 10.10.10.126, quindi il failover automatico ha funzionato come previsto.
Conclusione
Redis è una buona opzione nel caso in cui si desideri utilizzare un dataStore in memoria. Come puoi vedere in questo post sul blog, l’installazione non è scienza missilistica e l’uso del cluster Redis è spiegato nella sua documentazione ufficiale. Questo blog copre solo le fasi di installazione e test di base, ma puoi anche migliorarlo, ad esempio, aggiungendo l’autenticazione nella configurazione Redis o persino l’esecuzione di un punto di riferimento utilizzando lo strumento Redis-Benchmark per verificare le prestazioni.
prodotti correlati
Redis: replica, parte 1 – una panoramica. Replica vs sharding. Sentinel vs cluster. Topologia di Redis.
CodeProject
Inizialmente, era previsto scrivere un piccolo post con un esempio su come creare una replica di Redis, ma mentre leggo sempre più dettagli – volevo descriverne sempre di più, quindi alla fine ho diviso questo post in due parti.
In questo – una rapida panoramica, una breve spiegazione sulle differenze nei tipi di distribuzione dei dati Redis, esempi di topologia.
In brevi termini ma con collegamenti a documentazione dettagliata e altri post utili su altre risorse.
Nella seconda parte – un paio di esempi di come configurare una semplice replica e replica con Redis Sentinel.
Nella terza parte-Esempi della biblioteca Redis-Py con replicazione Redis e Sentinel.
Replication Redis vs sharding
Redis supporta due tipi di condivisione dei dati replica (conosciuto anche come mirroring, una duplicazione dei dati) e sharding (conosciuto anche come partizionamento, una segmentazione dei dati). In questo – il cluster Redis può utilizzare entrambi i metodi contemporaneamente.
Replica
È un dati che copre i nodi Redis complessivi in un cluster che consente di effettuare richieste a uno o più nodi slave e rendere la persistenza dei dati se alcuni di questi nodi diminuiranno, fornendo un’alta disponibilità.
Usando questo approccio – il Leggere Le richieste saranno più veloci.
Sharding
Con la segmentazione dei dati: tutti i dati saranno divisi in poche parti e questo migliorerà ogni nodo’Spessioni in quanto memorizzerà solo una parte dei dati e non servirà tutte le richieste.
Usando questo approccio – il scrivere Le richieste andranno più veloci.
Redis Sentinel vs Redis Cluster
Redis Sentinel
È stato aggiunto a Redis V.2.4 e fondamentalmente è un servizio di monitoraggio per master e schiavi.
Inoltre, può inviare notifiche, cambiare automaticamente i ruoli di master e schiavi se un maestro è giù e così via.
Potrebbe avere un senso da usare per una replicazione nuda master-slave (vedi sotto) senza il clustering completo.
Funziona come un demone dedicato usando un binario Sentinel o Redis-Server nel sentinella modalità.
Eseguirà la riconfigurazione dei nodi se il maestro è andato giù: sceglierà un nuovo maestro dagli schiavi a sinistra.
Richiede almeno tre istanze di Sentinel per avere un quorum per una nuova elezione principale e decidere se uno dei nodi Redis si abbassa
Cluster Redis
È stato aggiunto a Redis V.3.0 e rappresenta una soluzione di clustering completa per la segmentazione, la replica e la gestione dei suoi nodi.
Eseguirà la sincronizzazione dei dati, la replica, gestisce la persistenza dell’accesso ai nodi se alcuni diminuiranno.
L’utilizzo di Sentinel nel caso del cluster Redis non lo fa’T ha senso come il cluster farà tutto da solo.
Topologia di Redis
Un’istanza di Redis
Il caso classico più semplice e MOR.
Semplice in esecuzione e configurazione.
Limitato da un host’Sospese S – la sua CPU e la memoria.
In caso di tale istanza Redis, tutti i servizi dipendenti saranno rotti e non vi è alcuna disponibilità o meccanismi di tolleranza agli errori.
Replica di Master-Slave
Un maestro che ha schiavi multipite.
I dati verranno aggiornati su questo master e quindi il master spingerà tali modifiche alle sue repliche.
Gli schiavi possono parlare solo con il maestro e possono’T comunicare con altri schiavi, ma può ancora avere i loro schiavi
Gli schiavi sono nodi di sola lettura: nessuna modifica dei dati può essere eseguita lì a meno che questo non fosse’T configurato esplicitamente (vedi la seconda parte di questo post).
Nel caso di qualsiasi nodo diminuirà, tutti i dati saranno ancora disponibili per i client poiché i dati vengono replicati su tutti i nodi.
Semplice in configurazione ma il scrivere Le operazioni sono limitate dal master’risorse s.
In caso di maestro scenderà – tu’dovrà riconfigurare manualmente gli schiavi e cambiare schiavo in ruoli padroni.
Inoltre, i clienti devono sapere quale devono utilizzare per le operazioni delle scritture.
Redis Sentinel
Già descritto sopra ma qualche altra parola qui.
Analogamente alla replica di Redis – Sentinel ha un’istanza principale che ha una priorità quando si decide su un Master Redis’S Elezioni.
IO.e. In caso di Redis Master e due schiavi e se Sentinel Master lavora sullo stesso host in cui Redis Master è in esecuzione e questo host scenderà – Sentinel sceglierà Sentinel’S Nuova istanza principale e quelle due istanze Sentinelle devono decidere quale slave Redis dovrà diventare un nuovo Redis Master.
Durante questo – una sentinella’S Master avrà più peso in tale elezione.
Tieni presente che non tutti i clienti Redis in grado di lavorare con Sentinel, tutti i clienti possono essere trovati qui >>>.
Cluster Redis
E la soluzione più potente: il cluster Redis.
Ha alcune istanze principali e ognuno può averne uno in più – fino a 1000 – schiavi.
Si occuperà delle operazioni di frammenti di dati, replica, sincronizzazione e failover.
Deve avere almeno 6 nodi Redis – 3 per i maestri e tre per gli schiavi.
Può reindirizzare le richieste dei clienti a un host master o schiavo necessario, ma il cliente deve avere la possibilità di lavorare con Redis Cluster.