GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come impostare la replica Redis (con la modalità cluster disabilitata) in CentOS 8 – Parte 1

Redis (Server dizionario remoto ) è un server di database/struttura dati in memoria con valori-chiave in memoria molto popolare e ampiamente utilizzato, veloce, distribuito ed efficiente.

Offre un ricco set di funzionalità che lo rendono efficace per un'ampia gamma di casi d'uso:come database, livello di memorizzazione nella cache, broker di messaggi o coda; applicabile in applicazioni Web, applicazioni di chat e messaggistica, giochi, analisi dei dati in tempo reale e molto altro ancora.

Supporta strutture dati flessibili, replica asincrona master-slave per scalare le prestazioni di lettura e proteggersi dalla perdita di dati, partizionamento orizzontale lato client per scalare le prestazioni di scrittura, due forme di persistenza per la scrittura di dati in memoria su disco in un formato compatto, clustering e partizionamento. Dispone inoltre di failover automatici per la distribuzione ad alta disponibilità tramite Redis Sentinel , Scripting Lua , transazioni e molti altri.

Essendo un NO SQL o database non relazionale, Redis offre alcuni vantaggi in termini di prestazioni rispetto ai tradizionali sistemi di database (come MySQL/MariaDB , PostgreSQL , ecc.), perché tutti i suoi dati risiedono o sono archiviati in memoria rendendoli facilmente accessibili a un'applicazione, mentre i database tradizionali devono scrivere o leggere tutti i dati su disco o una fonte esterna.

Redis è diventata una scelta sempre più diffusa per la memorizzazione nella cache, che consente il riutilizzo dei dati memorizzati nella cache (memorizzati all'interno dello spazio di memoria principale di un'applicazione) anziché interrogare sempre un database per i dati utilizzati di frequente. Quindi è un fantastico compagno di RDMS (Sistemi di gestione di database relazionali ) per migliorare le prestazioni dell'applicazione.

In questo Redis in tre parti serie di tutorial, illustreremo come impostare e utilizzare alcune delle funzionalità chiave di Redis che sono la replica, l'elevata disponibilità utilizzando Redis Sentinel e Cluster Redis , gli articoli sono:

Parte 1 :Come configurare la replica Redis (con la modalità cluster disabilitata) in CentOS 8 Parte 2 :Come configurare Redis per l'alta disponibilità con Sentinel in CentOS 8 Parte 3 :Come configurare un cluster Redis (con la modalità cluster abilitata) in CentOS 8

Questa guida mostra come configurare Redis Replication (con Modalità cluster disabilitata ) in CentOS 8 Linux, incluso come installare Redis, configurare il master e le repliche e testare la replica.

Importante :Un cluster Redis (ovvero un cluster di replica ) con la modalità cluster disabilitata ha un singolo gruppo di nodi (ad es. un master e una o due repliche) in cui un cluster Redis con modalità cluster abilitata può essere costituito da due o più gruppi di nodi (ad es. tre master ciascuno con slave o due).

Prerequisiti:

  1. Server con installazione CentOS 8

Impostazione ambiente di prova

Redis Master Server: 10.42.0.247
Redis Replica1/Slave1: 10.42.0.21
Redis Replica2/Slave2: 10.42.0.34

Rappresentazione logica del diagramma di replica Redis

Con la configurazione di cui sopra (che ha un singolo nodo primario/master di lettura/scrittura e 2 nodi di replica di sola lettura), abbiamo un singolo gruppo di nodi che contiene tutti i dati del cluster in ogni nodo. Una volta che uno slave si connette a un master, riceve una copia iniziale del database completo e tutti i dati che esistevano in precedenza sullo slave verranno eliminati.

Inoltre, un client può scrivere solo sul master ma leggere da qualsiasi nodo nel cluster. E mentre le scritture vengono eseguite sul master, si propagano a tutti gli slave collegati per aggiornare i dataset degli slave in tempo reale.

Passaggio 1:installazione di Redis su CentOS 8

1. Per cominciare, accedi a tutti i CentOS 8 nodi tramite SSH, quindi installa Redis pacchetto su tutti i nodi (master e repliche) utilizzando il gestore pacchetti DNF come mostrato.

# dnf install @redis

2. Al completamento del Redis installazione del pacchetto, avvia il Redis servizio, abilitalo per l'avvio automatico ad ogni avvio del sistema e controlla se è attivo e funzionante come segue.

# systemctl start redis
# systemctl enable redis
# systemctl status redis

3. Puoi anche confermare che il Redis il server è attivo e funzionante controllando le porte in ascolto usando il comando ss, come segue.

# ss -ltpn | grep redis-server

Conferma le porte del server Redis

Fase 2:configurazione del server master Redis

4. Redis viene configurato utilizzando /etc/redis.conf file di configurazione, un file di configurazione di esempio autodocumentato. Innanzitutto, crea un backup del file originale, quindi aprilo per modificarlo utilizzando l'editor della riga di comando di tua scelta.

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

5. Per impostazione predefinita, un Redis l'istanza è configurata per ascoltare e accettare connessioni sul loopback interfaccia, utilizzando la direttiva bind. Per comunicare con le repliche, il master deve essere configurato per l'ascolto su IPv4 indirizzo di loopback e relativo indirizzo IP LAN, ad esempio 10.42.0.247 .

bind 127.0.0.1 10.42.0.247

6. Quindi, imposta il parametro della modalità protetta su no per consentire la comunicazione con le repliche come mostrato.

protected-mode no

Inoltre, Redis è in ascolto sulla porta 6379 che viene impostato utilizzando la port direttiva. Questa è la porta dati per comunicare con le API dell'applicazione o i client CLI.

port 6379

Configurazione del server master Redis

7. Per proteggere facoltativamente la replica master comunicazioni, possiamo proteggere il master utilizzando il requirepass direttiva, in modo che i client/replica debbano emettere una password di autenticazione prima di eseguire qualsiasi comando o avviare un processo di sincronizzazione della replica, altrimenti il ​​master rifiuterà la richiesta del client/replica (ricordarsi di impostare una password sicura).

Useremo la seguente opzione a scopo dimostrativo, per mostrare come funziona.

requirepass  [email protected]

Imposta la password di autenticazione

8. Inoltre, i registri Redis sono archiviati in /var/log/redis/redis.log file, questo viene impostato utilizzando il file di registro direttiva e il livello di dettaglio del server predefinito è notice , definito utilizzando il loglevel parametro.

loglevel  notice
logfile  /var/log/redis/redis.log

Imposta il file di registro Redis e il livello di registro

9. Da systemd è il sistema predefinito e il gestore dei servizi in CentOS 8 , puoi configurare Redis per interagire con il sistema albero di supervisione impostando il supervisionato parametro su systemd .

supervised systemd

Imposta Redis Supervisor su Systemd

10. Dopo aver effettuato tutte le configurazioni necessarie, salva il file e chiudilo. Quindi riavvia il Redis servizio per applicare le nuove modifiche.

# systemctl daemon-reload
# systemctl restart redis

11. Per accedere al Redis server, dobbiamo usare il redis-cli (un'interfaccia a riga di comando per il server redis). Per impostazione predefinita, si connette al server su localhost (a 127.0.0.1 porta 6379 ). Tieni presente che, poiché il server è protetto dai client tramite una password, l'esecuzione di un comando prima dell'autenticazione non dovrebbe riuscire.

Usa l'autenticazione comando per fornire la password di autenticazione come mostrato nella schermata seguente.

# redis-cli
127.0.0.1:6379> client list
127.0.0.1:6379> AUTH [email protected]
127.0.0.1:6379> client list

Accedi al server Redis tramite la CLI Redis

12. Per connettersi a una replica (dopo averli configurati come descritto nella sezione successiva), utilizzare il -h e -p opzioni per specificare rispettivamente l'indirizzo IP/il nome host e la porta della replica (non quella porta 6379 deve essere aperto nel firewall della replica).

# redis-cli -h 10.42.0.21 -p 6379

13. Quindi, apri il Redis porta dati del server nel firewall per consentire le connessioni in entrata al master e successivamente ricaricare le regole del firewall utilizzando il comando firewall-cmd come mostrato.

# firewall-cmd --zone=public --permanent --add-port=6379/tcp 
# firewall-cmd --reload

Fase 3:configurazione dei server Redis Replica/Slave

14. Per impostare rapidamente un Redis esempio come replica al volo, usa il redis-cli utilità e chiamare il REPLICAOF comando come mostrato.

# redis-cli replicaof 10.42.0.247 6379
OR
# redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379

Collegati a un'istanza Redis principale

15. Per rendere permanente una connessione di replica, è necessario apportare le seguenti modifiche nel file di configurazione. Inizia eseguendo il backup del file originale, quindi aprilo per la modifica.

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

16. Per consentire ai client di connettersi alla replica per leggere i dati, aggiungi l'indirizzo IP della replica alla direttiva bind.

# replica1
bind 127.0.0.1 10.42.0.21

# replica2
bind 127.0.0.1 10.42.0.34

Impostazione di un'istanza Redis come replica

17. Per configurare un'istanza Redis come replica , utilizza la replica di parametro e impostare l'indirizzo IP (o nome host) e la porta del nodo master come valori.

replicaof 10.42.0.247 6379

Impostazione della replica per l'autenticazione al master

18. Successivamente, poiché la nostra istanza master è protetta tramite una password, è necessario impostare la password nella configurazione della replica per consentirle di autenticarsi presso il master, utilizzando masterauth parametro.

masterauth [email protected]

19. Inoltre, quando una replica perde la connessione con il master o quando la replica è in corso, la replica viene configurata per rispondere alle richieste del client, possibilmente con "non aggiornato " dati. Ma se si tratta della prima sincronizzazione, il set di dati potrebbe essere semplicemente vuoto. Questo comportamento è controllato dai replica-serve-stale-data parametro.

E, dal momento che Redis 2.6 per impostazione predefinita, le repliche sono di sola lettura, questa è controllata da replica-sola lettura parametro. Puoi apportare altre modifiche alla configurazione delle repliche in base alle tue esigenze applicative.

20. Dopo aver apportato tutte le modifiche necessarie, riavvia il servizio Redis su tutte le repliche.

# systemctl restart redis

21. Inoltre, apri la porta 6379 nel firewall per consentire le connessioni dal master e dai client alle repliche e ricaricare le regole del firewall.

# firewall-cmd --zone=public --permanenent --add-port=6379/tcp
# firewall-cmd --reload

Fase 4:verifica dello stato della replica della replica master

22. Una volta che la replica master la configurazione della replica è completa, possiamo verificare se la configurazione funziona correttamente come segue.

Sul master, esegui i seguenti comandi.

# redis-cli
127.0.0.1:6379> AUTH [email protected]
127.0.0.1:6379> info replication

Controlla Redis Relocation Info su Master

23. Inoltre, controlla lo stato della replica sulle repliche/slave come segue.

# redis-cli
127.0.0.1:6379> info replication

Controlla le informazioni sulla replica Redis su Redis Replica 1

Controlla Redis Replication Info su Redis Replica 2

23. Ora testiamo la replica impostando un valore-chiave nell'istanza master e controlla se i dati sono sincronizzati con le repliche.

Sul master, procedere come segue:

# redis-cli
127.0.0.1:6379> AUTH [email protected]
127.0.0.1:6379> set domain 'www.tecmint.com'

Imposta il valore chiave nell'istanza principale

24. Quindi controlla se i dati sono stati sincronizzati con le repliche come mostrato.

# redis-cli
127.0.0.1:6379> get domain

Controlla lo stato della sincronizzazione dei dati sulle repliche

Protezione dell'istanza master dal rischio di perdere alcune scritture

25. Redis ha una funzione che consente a un'istanza master di limitare il rischio di perdere alcune scritture nel caso in cui non siano disponibili abbastanza repliche, a un numero di secondi specificato.

Ciò significa che un master può smettere di accettare scritture se sono presenti meno di N repliche connesse, con un ritardo minore o uguale a M secondi, come controllato da min-replicas-to-write e min-replicas-max-lag opzioni rispettivamente.

Per impostarli, togli il commento e imposta i valori in base ai tuoi requisiti di configurazione in /etc/redis.conf , come mostrato nella schermata seguente. Questa configurazione significa che, dall'ultimo ping alle repliche, dopo 10 secondi, se ci sono meno di 2 repliche online, il master smetterà di accettare le scritture.

min-replicas-to-write 2
min-replicas-max-lag 10

Protezione del Redis Master dalla perdita di scrittura

Puoi trovare più opzioni nel resto di /etc/redis.conf file di configurazione e per maggiori dettagli leggi la replica nella documentazione Redis.

Nel prossimo articolo, tratteremo come configurare Redis per l'alta disponibilità con Sentinel in CentOS 8 . Fino ad allora, rimani bloccato e ricorda di condividere i tuoi pensieri e le tue domande utilizzando il nostro modulo di commento qui sotto per raggiungerci.

Condividere è prendersi cura...
Condividi su FacebookCondividi su TwitterCondividi su LinkedinCondividi su Reddit
Cent OS
  1. Come configurare il server FTP con VSFTPD su CentOS 7

  2. Come configurare il server FTP con VSFTPD su CentOS 8

  3. Come installare e configurare Varnish Cache 6 con Nginx su CentOS 8

  4. Come configurare Pure-FTPD con MySQL su CentOS e RedHat

  5. Come configurare la replica MySQL su CentOS

Come configurare MariaDB Galera Cluster con HAproxy su CentOS 7

Come impostare la replica MySQL in RHEL/Centos

Come installare Redis su CentOS 6

Come installare Redis su CentOS 7

Come configurare Redis per un'elevata disponibilità con Sentinel in CentOS 8 – Parte 2

Come configurare un cluster Redis in CentOS 8 – Parte 3