Redis è l'acronimo di R emoticon d server immaginario. È un database/store di valori chiave open source, in memoria e persistente che archivia i dati come coppie chiave-valore e funge anche da broker di messaggi. Redis supporta un'ampia gamma di strutture di dati, inclusi set , elenchi , hash , stringhe , HyperLogLog e tanti altri.
Che cos'è una coppia chiave-valore?
Una coppia chiave-valore è un insieme o una coppia di due elementi collegati. Considera quanto segue:
auto =Mercedes
In questo caso l'auto è la chiave e la Mercedes il valore. In un database Redis, queste informazioni possono essere scritte utilizzando la sintassi:
SET "chiave1" "valore1"
Il nostro esempio si tradurrà in:
IMPOSTA "auto" "Mercedes"
Vantaggi dell'utilizzo di Redis
- A differenza dei database relazionali come MySQL, Redis è un database NoSQL che archivia i dati come una coppia chiave-valore. Ciò lo rende semplice e flessibile in quanto non è necessario creare tabelle, colonne e righe associate a database relazionali. L'invio di dati a Redis è semplice e diretto.
- Uno degli usi apparenti di Redis è il suo utilizzo come sistema di memorizzazione nella cache. Mentre lo fa, offre anche persistenza ai dati scritti su di esso.
- L'architettura in-memory di Redis lo rende super veloce nell'archiviazione e nel recupero dei dati.
- Il sistema di cache redis è abbastanza robusto e ha la capacità di resistere a guasti e interruzioni.
- Redis viene fornito con una funzione di replica Master-Slave. Quando vengono apportate modifiche al nodo master, vengono replicate automaticamente sui nodi slave per garantire un'elevata disponibilità.
- Redis ha la capacità di memorizzare coppie chiave e valore di grandi dimensioni fino a 512 MB.
- Dato il suo ingombro ridotto, Redis può essere installato in dispositivi IoT come Raspberry Pi e Arduino per supportare le app IoT.
- Redis è un database multipiattaforma e un sistema di memorizzazione nella cache che può essere installato su Windows, mac e Linux.
Casi d'uso Redis
Con i vantaggi sopra descritti, Redis può essere utilizzato nei seguenti modi:
- Analisi dei dati statistici in tempo reale.
- Utilizzato per l'integrazione con i servizi AWS come le istanze CloudTrail, CloudWatch e Amazon EC2.
- Può essere un'ottima opzione per memorizzare nella cache i siti web.
- Le piattaforme di social media come Instagram utilizzano Redis per archiviare le immagini
- Redis supporta un'ampia gamma di tipi di dati come hyperlog, hash e dati geospaziali.
Ora vediamo come installare Redis su CentOS 8 / RHEL 8
Fase 1:aggiorna i repository di sistema
Accedi al tuo sistema CentOS 8 / RHEL 8 e aggiorna i pacchetti di sistema e i repository usando il comando:
$ sudo dnf update -y
Passaggio 2:installa Redis con dnf
Redis versione 5.0.x è ora inclusa nel repository AppStream CentOS 8 e l'installazione è una passeggiata. Basta eseguire il comando:
$ sudo dnf install redis -y
Una volta installato, puoi verificare la versione di Redis installata eseguendo il comando:
[[email protected] ~]$ rpm -q redis redis-5.0.3-1.module_el8.0.0+6+ab019c03.x86_64 [[email protected] ~]$
Dall'output è chiaro che abbiamo installato Redis versione 5.0.3. Per recuperare ulteriori informazioni su Redis come versione, architettura, licenza e una breve descrizione, eseguire il comando:
$ rpm -qi redis
Per avviare e abilitare il servizio Redis, esegui i seguenti comandi systemctl:
$ sudo systemctl start redis $ sudo systemctl enable redis
Una volta avviato, puoi verificarne lo stato eseguendo
$ sudo systemctl status redis
Per impostazione predefinita, Redis viene eseguito sulla porta 6379. Puoi confermarlo eseguendo il comando netstat:
$ sudo netstat -pnltu | grep redis
Fase 3:Configura Redis per l'accesso remoto
L'installazione predefinita consente solo connessioni da localhost o server Redis e blocca tutte le connessioni esterne. Configurare Redis per la connessione remota da una macchina client.
Accedi al file di configurazione come mostrato:
$ sudo vim /etc/redis.conf
Individua il parametro bind e sostituisci 127.0.0.1 con 0.0.0.0
bind 0.0.0.0
Salva e chiudi il file di configurazione. Per rendere effettive le modifiche, riavvia Redis.
$ sudo systemctl restart redis
Per accedere alla shell Redis, esegui il comando:
$ redis-cli
Prova a eseguire il ping del server redis. Dovresti ricevere una risposta "PONG" come mostrato.
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
Fase 4:protezione del server Redis
La nostra configurazione Redis consente a chiunque di accedere alla shell e ai database senza autenticazione, il che rappresenta un grave rischio per la sicurezza. Per impostare una password, torna al file di configurazione /etc/redis.conf
Individua e decommenta il parametro requirepass e specifica una password complessa come mostrato
Riavvia Redis e torna al server.
$ sudo systemctl restart redis
Se tenti di eseguire qualsiasi comando prima dell'autenticazione, verrà visualizzato l'errore mostrato di seguito
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping (error) NOAUTH Authentication required. 127.0.0.1:6379>
Per autenticarti, digita "auth" seguito dalla password impostata. Nel nostro caso questo sarà:
auth [email protetta]
Successivamente, puoi continuare a eseguire i tuoi comandi.
[[email protected] ~]$ redis-cli 127.0.0.1:6379> auth [email protected] OK 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
Per uscire da redis-cli, digita exit
Fase 5:configurazione del firewall per redis
Infine, dobbiamo configurare il firewall per consentire le connessioni remote al server Redis. Per fare ciò, dobbiamo aprire la porta redis che è 6379.
Quindi, esegui i comandi seguenti.
$ sudo firewall-cmd --add-port=6379/tcp --permanent $ sudo firewall-cmd --reload
Per accedere a Redis da remoto, usa la sintassi seguente.
$ redis-cli -h REDIS_IP_ADDRESS
Quindi autenticati e premi "INVIO '
L'indirizzo IP del nostro server Redis è 192.168.1.5 Il comando da un altro PC client sarà
$ redis-cli -h 192.168.1.5
Quindi, fornisci la password e premi "INVIO"
auth [email protetta]
Sopra conferma che Redis Server è stato installato correttamente, passiamo alla nostra prossima sezione.
Come eseguire il benchmark Redis
Redis viene fornito con uno strumento integrato noto come redis-benchmark che fornisce informazioni dettagliate sulle statistiche sulle prestazioni del sistema come velocità di trasferimento dati, velocità effettiva e latenza, solo per citarne alcuni.
Alcune delle opzioni di comando che puoi utilizzare con Redis includono
- -n: Definisce il numero di richieste da effettuare. Il valore predefinito è 100000
- -c: Definisce il numero di connessioni parallele da simulare. Per impostazione predefinita, questo valore è 50
- -p: Questa è la porta Redis che per impostazione predefinita è 6379
- -h: Utilizzato per definire l'host. Per impostazione predefinita, questo valore è impostato su localhost (127.0.0.1)
- -a: Utilizzato per richiedere una password se il server necessita di autenticazione
- -q: Sta per modalità silenziosa. Visualizza la media delle richieste effettuate al secondo
- -t: Utilizzato per eseguire una combinazione di test
- -P: Utilizzato per la pipeline per prestazioni migliori.
- -d:specifica la dimensione dei dati in byte per i valori GET e SET. Per impostazione predefinita, è impostato su 3 byte
Esempi:
A conferma della media n. di richieste che il tuo server Redis può gestire esegui il comando:
$ redis-benchmark -q
Presta attenzione all'ultima riga. Indica che Redis può gestire 23046 richieste al secondo.
Inoltre, puoi usare l'opzione -t per eseguire un sottoinsieme di comandi. Nell'esempio seguente, lo stiamo usando per visualizzare la media n. richieste di comandi SET e GET.
$ redis-benchmark -t set,get -q
[[email protected] ~]$ redis-benchmark -t set,get -q SET: 26102.84 requests per second GET: 25555.84 requests per second [[email protected] ~]$
Dall'output, possiamo vedere che abbiamo 26102.84 richieste al secondo per il comando SET e 25555.84 richieste per il comando GET.
Per impostazione predefinita, il numero di connessioni parallele è 50 . Per specificare un numero diverso di connessioni client, diciamo 1000, usa il parametro -c come mostrato:
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 SET: 21997.36 requests per second GET: 22119.00 requests per second [[email protected] ~]$
Come avrai notato, il numero di richieste al secondo è diminuito a causa dell'aumento del numero di connessioni parallele da 50 a 1000.
Facciamo un passo avanti e impostiamo il numero di richieste a 1000000
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 -n 1000000 SET: 16660.28 requests per second GET: 21550.79 requests per second [[email protected] ~]$
Anche in questo caso, i valori di SET e GET diminuiscono a causa dell'aumento del numero di richieste da 100.000 predefinito a 1.000.000.
E questo conclude il nostro argomento di oggi. Abbiamo installato con successo il server Redis su CentOS 8 e siamo riusciti a eseguire alcuni test di benchmarking sul nostro server. Sei il benvenuto a condividere feedback e commenti.