
Redis è un archivio di strutture dati in memoria open source. Può essere utilizzato come database, cache e broker di messaggi e supporta varie strutture di dati come stringhe, hash, elenchi, set, ecc. Redis fornisce un'elevata disponibilità tramite Redis Sentinel, incluso il monitoraggio, le notifiche Failover automatico. Fornisce inoltre il partizionamento automatico su più nodi Redis con Redis Cluster.
Questo tutorial descrive come installare e configurare Redis su un server Ubuntu 18.04. Le stesse istruzioni si applicano a Ubuntu 16.04 ea qualsiasi distribuzione basata su Ubuntu.
Prerequisiti #
Prima di iniziare con il tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo.
Installazione di Redis su Ubuntu #
Il pacchetto Redis è incluso nei repository Ubuntu 18.04 predefiniti. L'installazione è piuttosto semplice, basta seguire i passaggi seguenti:
-
Inizia aggiornando l'elenco dei pacchetti apt eseguendo il seguente comando nel tuo terminale SSH:
sudo apt update
-
Installa Redis digitando:
sudo apt install redis-server
-
Una volta completata l'installazione, il servizio Redis si avvierà automaticamente. Per verificare lo stato del servizio, inserisci il seguente comando:
sudo systemctl status redis-server
Dovresti vedere qualcosa del genere:
● redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2018-10-28 05:10:45 PDT; 2h ago Docs: http://redis.io/documentation, man:redis-server(1) Process: 2197 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS) Process: 2201 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS) Main PID: 2226 (redis-server) Tasks: 4 (limit: 2319) CGroup: /system.slice/redis-server.service `-2226 /usr/bin/redis-server 0.0.0.0:6379
Congratulazioni, a questo punto hai Redis installato e in esecuzione sul tuo server Ubuntu 18.04.
Configura Redis Remote Access #
Per impostazione predefinita, Redis non consente connessioni remote. Puoi connetterti al server Redis solo da 127.0.0.1 (localhost) - la macchina su cui è in esecuzione Redis.
Esegui i seguenti passaggi solo se desideri connetterti al tuo server Redis da host remoti. Se stai utilizzando una configurazione a server singolo, in cui l'applicazione e Redis sono in esecuzione sulla stessa macchina, non dovresti abilitare l'accesso remoto.
Per configurare Redis in modo che accetti connessioni remote, apri il file di configurazione Redis con il tuo editor di testo:
sudo nano /etc/redis/redis.conf
Individua la riga che inizia con bind 127.0.0.1 ::1
e sostituisci 127.0.0.1
con 0.0.0.0
.
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0 ::1
Salva il file e chiudi l'editor.
Riavvia il servizio Redis per rendere effettive le modifiche:
sudo systemctl restart redis-server
Utilizza il comando seguente per verificare che redis sia in ascolto su tutte le interfacce sulla porta 6379
:
ss -an | grep 6379
Dovresti vedere qualcosa come di seguito. 0.0.0.0
indica tutti gli indirizzi IPv4 sulla macchina.
tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:*
tcp LISTEN 0 128 [::]:6379 [::]:*
Successivamente, dovrai aggiungere una regola firewall che abiliti il traffico dai tuoi computer remoti sulla porta TCP 6379
.
Supponendo che tu stia usando UFW
per gestire il tuo firewall e vuoi consentire l'accesso dal 192.168.121.0/24
subnet eseguiresti il seguente comando:
sudo ufw allow proto tcp from 192.168.121.0/24 to any port 6379
A questo punto, il server Redis accetterà connessioni remote sulla porta TCP 6379.
Assicurati che il tuo firewall sia configurato per accettare connessioni solo da intervalli IP affidabili.
Per verificare che tutto sia impostato correttamente, puoi provare a eseguire il ping del server Redis dal tuo computer remoto usando il redis-cli
utilità:
redis-cli -h <REDIS_IP_ADDRESS> ping
Il comando dovrebbe restituire una risposta di PONG
:
PONG