
Redis è un datastore di valori-chiave 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 e altro. Redis fornisce alta disponibilità tramite Redis Sentinel e partizionamento automatico tra più nodi Redis con Redis Cluster.
In questo tutorial, tratteremo come installare e configurare Redis su una Debian 10, Buster.
Installazione di Redis su Debian #
Redis versione 5.0.x è inclusa nei repository Debian 10 predefiniti. Per installarlo esegui i seguenti comandi come root o utente con privilegi sudo:
sudo apt update
sudo apt install redis-server
Il servizio Redis si avvierà automaticamente al termine dell'installazione. Puoi verificarlo digitando:
sudo systemctl status redis-server
L'output dovrebbe essere simile a questo:
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-11-28 14:15:23 PST; 27s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 2024 (redis-server)
Tasks: 4 (limit: 2359)
Memory: 6.9M
CGroup: /system.slice/redis-server.service
└─2024 /usr/bin/redis-server 127.0.0.1:6379
Il servizio Redis non si avvierà se IPv6 è disabilitato sul tuo server. Questo è tutto! Redis è installato e in esecuzione sul tuo server Debian 10 e puoi iniziare a usarlo.
Configura Redis Remote Access #
Per impostazione predefinita, Redis è configurato per l'ascolto solo su localhost. Puoi connetterti al server Redis solo dalla macchina su cui è in esecuzione il servizio Redis.
Se stai utilizzando una configurazione a server singolo, in cui anche il client che si connette al database è in esecuzione sullo stesso host, 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 vim /etc/redis/redis.conf
Cerca una riga che inizi con bind 127.0.0.1 ::1
e commentalo.
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# bind 127.0.0.1 ::1
Salva il file e chiudi l'editor.
Riavvia il servizio Redis per rendere effettive le modifiche:
sudo systemctl restart redis-server
Usa ss
o netstat
per verificare che Redis sia in ascolto su tutte le interfacce sulla porta 6379
:
ss -an | grep 6379
Dovresti vedere qualcosa come di seguito:
tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:*
tcp LISTEN 0 128 [::]:6379 [::]:*
Dovrai anche 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 desideri 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
Assicurati che il tuo firewall sia configurato per accettare connessioni solo da intervalli IP affidabili.
Una volta fatto, usa il redis-cli
utility per testare la connessione eseguendo il ping del server Redis dal tuo computer remoto:
redis-cli -h <REDIS_IP_ADDRESS> ping
Il comando dovrebbe restituire una risposta di PONG
:
PONG