Redis è un archivio di valori-chiave in memoria open source gratuito che supporta diversi tipi di strutture dati. Puoi usarlo come database, cache, broker di messaggi e coda. Viene utilizzato per la creazione di applicazioni Web scalabili e ad alte prestazioni. Supporta un'ampia gamma di linguaggi di programmazione come Java, PHP, C, Perl, Python, C#, Lua, Go e molti altri. È multipiattaforma e funziona nella maggior parte dei sistemi operativi basati su Unix, inclusi Linux, *BSD e OS X.
In questo tutorial, spiegheremo come installare Redis sul server CentOS 8.
Prerequisiti
- Un server che esegue CentOS 8.
- Una password di root è configurata sul server.
Installa il server Redis
Per impostazione predefinita, il pacchetto Redis è disponibile nel repository predefinito di CentOS 8. Puoi installarlo eseguendo il seguente comando:
dnf install redis -y
Dopo aver installato il server Redis, avvia il servizio Redis e abilitalo all'avvio al riavvio del sistema con il seguente comando:
systemctl start redis
systemctl enable redis
Puoi anche verificare lo stato del server Redis con il seguente comando:
systemctl status redis
Dovresti ottenere il seguente output:
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d ??limit.conf Active: active (running) since Tue 2020-09-15 04:52:54 EDT; 6s ago Main PID: 3076 (redis-server) Tasks: 4 (limit: 12527) Memory: 6.6M CGroup: /system.slice/redis.service ??3076 /usr/bin/redis-server 127.0.0.1:6379 Sep 15 04:52:54 centos8 systemd[1]: Starting Redis persistent key-value database... Sep 15 04:52:54 centos8 systemd[1]: Started Redis persistent key-value database.
Per impostazione predefinita, Redis è in ascolto sulla porta 6379. Puoi verificarlo con il seguente comando:
ss -ant | grep 6379
Dovresti ottenere il seguente output:
LISTEN 0 128 127.0.0.1:6379 0.0.0.0:*
Quindi, verifica la connettività Redis con il seguente comando:
redis-cli
Dovresti vedere il seguente output:
127.0.0.1:6379>
Ora, esegui il seguente comando per verificare la connettività:
127.0.0.1:6379> ping
Dovresti vedere il seguente output:
PONG
Configura Redis Cache
Successivamente, dovrai configurare Redis come server di memorizzazione nella cache. Puoi farlo modificando il file di configurazione di Redis:
nano /etc/redis.conf
Aggiungi le seguenti righe alla fine del file:
maxmemory 128mb maxmemory-policy allkeys-lru
Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Redis con il seguente comando:
systemctl restart redis
Server Redis protetto
Per impostazione predefinita, redis-cli consente di eseguire qualsiasi comando all'interno della shell Raedis. Quindi è una buona idea proteggere una shell Redis con la password. Puoi abilitare l'autenticazione della password modificando il file /etc/redis.conf:
nano /etc/redis.conf
Trova la seguente riga:
# requirepass foobared
E sostituiscilo con la seguente riga:
requirepass A	D3Fs4%#df
Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Redis per applicare le modifiche alla configurazione:
systemctl restart redis
Ora, connettiti al Redis con il seguente comando:
redis-cli
Una volta connesso, esegui il seguente comando:
127.0.0.1:6379> INFO server
Riceverai il seguente errore perché non ti autentichi.
NOAUTH Authentication required.
Ora, esegui il seguente comando per autenticarti con la password specificata nel file di configurazione di Redis:
127.0.0.1:6379> AUTH A	D3Fs4%#df
Dovresti vedere il seguente output:
OK
Ora, esegui il seguente comando:
127.0.0.1:6379> INFO server
Dovresti ottenere il seguente output:
# Server redis_version:5.0.3 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:28849dbea6f07cc8 redis_mode:standalone os:Linux 4.18.0-193.14.2.el8_2.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:8.3.1 process_id:3176 run_id:2bf42acb9a0c0f251220c9bf5d66982b1c0b1d87 tcp_port:6379 uptime_in_seconds:41 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:6324712 executable:/usr/bin/redis-server config_file:/etc/redis.conf
Al termine, puoi procedere al passaggio successivo.
Rinomina comando pericoloso
Si consiglia inoltre di rinominare alcuni comandi pericolosi all'interno della shell Redis. Uno dei comandi pericolosi è "config". Viene utilizzato per recuperare la password Redis.
Vediamo come recuperare la password Redis con il comando "config".
Innanzitutto, connettiti al Redis con il seguente comando:
redis-cli
Una volta connesso, autentica Redis con il seguente comando:
127.0.0.1:6379> AUTH A	D3Fs4%#df
Successivamente, recupera la password Redis utilizzando il seguente comando:
127.0.0.1:6379> config get requirepass
Dovresti ottenere la password Redis nel seguente output:
1) "requirepass" 2) "A	D3Fs4%#df"
Puoi rinominare il comando "config" modificando il file /etc/redis.conf:
nano /etc/redis.conf
Trova la seguente riga:
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
E sostituiscilo con la seguente riga:
rename-command CONFIG hitredis
Salva e chiudi il file. Quindi, riavvia il servizio Redis con il seguente comando:
systemctl restart redis
Ora connetti e autentica Redis con il seguente comando:
redis-cli
127.0.0.1:6379> AUTH A	D3Fs4%#df
Ora, recupera la password Redis con il comando "config":
127.0.0.1:6379> config get requirepass
Dovresti ricevere il seguente errore:
(error) ERR unknown command `config`, with args beginning with: `get`, `requirepass`,
Ora, esegui il comando rinominato come mostrato di seguito:
127.0.0.1:6379> hitredis get requirepass
Dovresti ottenere la tua password Redis nel seguente output:
1) "requirepass" 2) "A	D3Fs4%#df"
Conclusione
Congratulazioni! hai installato e protetto correttamente il server Redis su CentOS 8. Ora puoi ospitare la tua applicazione e configurarla per utilizzare la cache Redis. Sentiti libero di chiedermi se hai domande.