Redis è un archivio di dati in-memory chiave-valore senza schemi per applicazioni in tempo reale. Potete usarlo come database NoSQL, come livello di dati secondario o come livello di cache per i processi ad alta intensità di calcolo.

Redis offre uno storage persistente in grado di memorizzare nella cache gli stati di sessione dei siti web e altri dati. Le applicazioni che usano Redis come livello di cache in genere effettuano una complessa query al database o una chiamata API e poi mettono in cache i risultati. Può memorizzare e recuperare gli oggetti in modo rapido ed efficiente. Per questo motivo, Redis è un ottimo compagno per WordPress, che usa un server di database relazionale più tradizionale come archivio principale dei contenuti.

L’interfaccia a riga di comando (CLI) di Redis può essere utilizzata per comunicare con il server Redis del vostro sito WordPress. Usando la Redis CLI (invocata sulla linea di comando come redis-cli), potete richiedere e ricevere risposte dal server Redis in modo programmatico, monitorare i comandi eseguiti in un’istanza Redis, controllare la latenza di un’istanza e osservare lo stato del server in tempo reale.

Questo tutorial vi mostra come integrare Redis e il vostro sito WordPress e come usare la CLI di Redis per eseguire operazioni di creazione, lettura, aggiornamento e cancellazione (CRUD) dal vostro terminale.

Collegare Redis a WordPress con DevKinsta

Per collegare un sito WordPress a un database Redis, usiamo DevKinsta, un toolkit gratuito che permette di creare, sviluppare e distribuire rapidamente siti WordPress dall’ambiente locale.

DevKinsta avvia localmente un sito WordPress Dockerizzato con le ultime versioni delle sue dipendenze, tra cui un server web Nginx, PHP e un database MariaDB compatibile con MySQL. Dispone anche di un supporto CLI per WordPress.

DevKinsta è disponibile per Windows, Linux e macOS. Troverete maggiori informazioni sull’installazione scaricando DevKinsta.

Al termine dell’installazione, create e installate un nuovo sito WordPress in locale sul vostro dispositivo usando lo stack di hosting predefinito.

DevKinsta offre tre opzioni per creare siti WordPress in locale: un sito nuovo di zecca con impostazioni predefinite, un nuovo sito con impostazioni personalizzate e la clonazione di un sito esistente ospitato su Kinsta nel vostro ambiente di sviluppo locale.

Questo tutorial usa la prima opzione con le impostazioni predefinite e le ultime versioni di Nginx, PHP, MariaDB e WordPress.

Dopo aver seguito questi passaggi, potrete visualizzare la bacheca del vostro nuovo sito in DevKinsta:

Schermata del cruscotto di DevKinsta dopo la creazione di un nuovo sito WordPress.
Il cruscotto di DevKinsta dopo la creazione di un nuovo sito WordPress.

Prendete nota del percorso del sito. Si tratta della directory contenente i file e le cartelle del sito locale. Il link alla bacheca WP Admin appare nell’angolo in alto a destra. Infine, prendete nota dell’host del sito, ovvero l’URL che punta al vostro nuovo sito di sviluppo.

Potete aprire Docker Desktop per elencare tutti i container in esecuzione come dipendenze nel vostro progetto DevKinsta. Per farlo, fate clic su Container nella parte superiore della barra laterale di sinistra:

Schermata con l’elenco dei container di DevKinsta in Docker Desktop.
Elenco dei container di DevKinsta in Docker Desktop.

Ora che il vostro sito WordPress e le dipendenze del container sono attivi e funzionanti, tutto è pronto per collegare un database Redis al vostro sito:

  1. Fate clic sul pulsante WP Admin in DevKinsta per accedere alla bacheca di amministrazione di WordPress.
  2. Fate clic sulla scheda Plugin sul lato sinistro.
  3. Fate clic su Aggiungi nuovo e cercate “Redis Object Cache”
Schermata del backend di WordPress, pagina dei plugin: nella barra di ricerca dei plugin c’è scritto redis e nella lista compare il plugin Redis Object Cache.
Ricerca del plugin Redis Object Cache all’interno di WordPress.

Fate clic su Installa ora accanto al plugin. Poi confermate che è attivo facendo clic sulla scheda Plugin installati.

Schermata con la lista dei plugin WordPress installati sul sito e il plugin Redis Object Cache è evidenziato.
Plugin WordPress installati, incluso Redis Object Cache.

Alla prima attivazione, il plugin Redis Object Cache segnala l’impossibilità di connettersi a un database Redis. Per risolvere questo problema, creiamo un container con un’istanza di Redis all’interno di Docker.

Apriamo un terminale e creiamo un container di rete chiamato redisnet in cui eseguire l’immagine di Redis:

docker network create -d bridge redisnet

Ora, costruite ed eseguite un’immagine di Redis come container autonomo all’interno di quel container di rete:

docker run -d -p 6379:6379 --name demo_redis --network redisnet redis

Dopo aver avviato l’immagine del container, verificate in Docker Desktop che l’immagine di Redis sia attiva e funzionante:

Schermata che indica che l'immagine demo_redis è in esecuzione in Docker Desktop.
Docker Desktop esegue l’immagine demo_redis.

Ricordate che il vostro sito WordPress è stato lanciato automaticamente all’interno di un container Docker. Potete confermare il nome e l’ID del container:

docker network ls
Schermata con il risultato dei nomi di rete e ID in Docker Desktop.
Nomi di rete e ID in Docker Desktop.

Qui sopra, la versione troncata dell’ID di rete per devkinsta_network è d1fa155f7a4d. Lo useremo in seguito.

Un modo per collegare il cluster e il server Redis al vostro sito WordPress locale è quello di connettere direttamente le reti Redis e DevKinsta. Per prima cosa, verificate l’ID del container di Redis. In questo caso, con il comando Docker per elencare i container, usiamo lo switch -l (latest) per mostrare solo il container creato più di recente:

docker ps -l
Schermata con le l'output del comando Docker per mostrare le informazioni sui container.
Informazioni sul container generate dal comando ps di Docker.

In questo esempio, l’ID del container troncato appare come c3ffc630e44c.

Connettete il vostro container Redis alla rete DevKinsta usando l’ID del vostro container al posto del nostro nel comando sottostante.

docker network connect devkinsta_network c3ffc630e44c

L’immagine del container Redis dovrebbe essere stata aggiunta con successo all’elenco dei container in esecuzione all’interno di devkinsta_network. Per verificare l’indirizzo IP di rete del container Redis, eseguite il seguente comando, sostituendo il nostro ID devkinsta_network con quello che avete trovato usando il comando network ls nel vostro progetto:

docker inspect d1fa155f7a4d
Schermata con l’output del comando docker inspect.
Il terminale mostra alcuni dei risultati del comando docker inspect.

Nell’immagine qui sopra, l’indirizzo IP del container demo_redis è 172.172.0.6. Annotate l’indirizzo IP nel vostro progetto prima di procedere con la connessione.

Andate alla root del sito WordPress sul vostro computer locale, che si trova nel percorso del sito visualizzato in DevKinsta. Aprite il file wp-config.php con un editor di testo e aggiungete il seguente codice nella sezione delle variabili di configurazione personalizzate:

define('WP_REDIS_CLIENT', 'predis');
define('WP_REDIS_HOST', '172.172.0.6');
define('WP_REDIS_PORT', '6379');

L’indirizzo IP da usare per WP_REDIS_HOST è quello che avete scoperto per demo_redis quando avete eseguito il comando docker inspect.

Questo codice di configurazione aggiunge il client Redis, l’host e la porta in modo che il plugin possa accedere al server Redis all’interno dello stesso container Docker e della stessa rete di DevKinsta.

Per confermare che il plugin è connesso e funzionante:

  1. Andate alla pagina dei plugin di WordPress nella bacheca di amministrazione.
  2. Fate clic sul link Impostazioni di Redis Object Cache.
  3. Nella pagina delle impostazioni, fate clic sul pulsante Enable Object Cache.
Schermata dell’abilitazione della object cache di Redis in WordPress: una freccia indica il pulsante Enable Object Cache.
La Redis Object Cache è scrivibile e raggiungibile, ma deve essere abilitata.

Una volta abilitata la Redis Object Cache, la pagina delle impostazioni avrà l’aspetto seguente:

Schermata con la pagina delle impostazioni di Redis Object Cache con il plugin abilitato.
La pagina delle impostazioni di Redis Object Cache mostra che Redis è connesso e funzionante.

Avviare la CLI di Redis

Lo strumento Redis CLI (redis-cli) viene fornito con un server Redis. Potete installare un server Redis sui sistemi operativi Windows, macOS e Linux.

Tuttavia, qui stiamo già eseguendo Redis in Docker, quindi possiamo lanciare lo strumento CLI all’interno del nostro container demo_redis.

In precedenza, quando abbiamo usato il comando docker ps, abbiamo appreso l’ID del contenitore che esegue l’immagine di Redis. Il nostro iniziava con c3ffc630e44c. Possiamo usare questo ID troncato per puntare a demo_redis e lanciare una shell a riga di comando al suo interno:

docker exec -it c3ffc630e44c /bin/sh

Ora potete invocare lo strumento redis-cli:

Schermata di codice con redis-cli invocato da una shell in Docker.
redis-cli invocato da una shell in Docker.

Potete eseguire il ping del server per testare la connessione:

ping
Schermata di codice con il ping del server Redis che usa redis-cli.
Risposta del server a un ping in redis-cli.

Per connettervi al server Redis usando il suo indirizzo IP e la sua porta e testare la connessione, eseguite il seguente comando (usando l’indirizzo IP del vostro container demo_redis):

redis-cli -h 172.172.0.6 -p 6379 ping
Schermata di codice con il ping del server Redis tramite un indirizzo IP.
Invio di un ping al server Redis tramite il suo indirizzo IP e la sua porta.

La connessione al server Redis è avvenuta con successo sia sul vostro computer locale che sul container Docker.

Successivamente, verificate che il vostro sito WordPress stia memorizzando i dati nella cache di Redis usando redis-cli e il suo comando keys * per visualizzare tutte le chiavi del database:

Schermata di codice con l’elenco delle chiavi sul server Redis.
Recupero di tutte le chiavi del database Redis con una ricerca asteriscata.

Potete notare che alcuni dati di WordPress sono già stati salvati nella cache di Redis.

Operazioni CRUD della CLI di Redis

Potete eseguire operazioni CRUD sul vostro database Redis utilizzando lo strumento CLI.

Vediamo come ottenere il valore di una chiave che abbiamo copiato dalla nostra precedente richiesta Redis CLI keys *.

get :u.:~8r]mC->Re/gG!&mGU.[{+;]t7o<H~)c*pcU=Lx_Vs{9JkdxkL:X;M-@Y$Svwp:user_meta:1
Schermata di codice con i risultati di una query al database Redis.
Risposta di Redis a una richiesta “get” utilizzando redis-cli.

Manipoliamo il contenuto del database Redis invocando redis-cli e usando i comandi set, get e del per creare una coppia chiave/valore, interrogare la nuova chiave e poi cancellarla:

Schermata di codice per creare, interrogare e cancellare di dati chiave/valore di Redis.
Semplici operazioni CRUD su un database Redis utilizzando redis-cli.

Sopra, il tentativo di recuperare il valore di una chiave che è stata cancellata restituisce nil.

Sono disponibili molte operazioni più avanzate quando si usa la Redis CLI.

Riepilogo

La Redis CLI è un modo semplice per testare i comandi di Redis sul vostro sito web prima di trasferirli in un ambiente live. È anche un ottimo modo per monitorare l’attività di un’istanza Redis.

In Docker, un’istanza Redis fornisce gli strumenti necessari per gestire il database, compreso redis-cli, in un unico container.

Nel frattempo, l’approccio Dockerizzato di DevKinsta rende facile sviluppare un sito WordPress su una macchina locale e poi distribuirlo in produzione con pochi clic del mouse.

Se non state già gestendo alcuni dei 118,000 siti WordPress ospitati da Kinsta, scoprite le funzionalità avanzate disponibili in tutti i nostri piani di Hosting WordPress Gestito.

Steve Bonisteel Kinsta

Steve Bonisteel è un Technical Editor di Kinsta che ha iniziato la sua carriera di scrittore come giornalista della carta stampata, inseguendo ambulanze e camion dei pompieri. Dalla fine degli anni '90 si occupa di tecnologia legata a Internet.