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:
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:
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:
- Fate clic sul pulsante WP Admin in DevKinsta per accedere alla bacheca di amministrazione di WordPress.
- Fate clic sulla scheda Plugin sul lato sinistro.
- Fate clic su Aggiungi nuovo e cercate “Redis Object Cache”
Fate clic su Installa ora accanto al plugin. Poi confermate che è attivo facendo clic sulla scheda Plugin installati.
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:
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
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
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
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:
- Andate alla pagina dei plugin di WordPress nella bacheca di amministrazione.
- Fate clic sul link Impostazioni di Redis Object Cache.
- Nella pagina delle impostazioni, fate clic sul pulsante Enable Object Cache.
Una volta abilitata la Redis Object Cache, la pagina delle impostazioni avrà l’aspetto seguente:
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
:
Potete eseguire il ping del server per testare la connessione:
ping
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
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:
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
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:
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.
Lascia un commento