Redis es un almacén de datos clave-valor en memoria, sin esquema, para aplicaciones en tiempo real. Los desarrolladores pueden utilizarlo como una base de datos NoSQL, una capa de datos secundaria o una capa de caché para procesos informáticos intensivos.

Redis ofrece almacenamiento persistente que puede almacenar en caché estados de sesión de sitios web y otros datos. Las aplicaciones que utilizan Redis como capa de caché suelen hacer una consulta compleja a la base de datos o una llamada a la API y luego almacenan en caché los resultados. Puede almacenar y recuperar objetos de forma rápida y eficiente. Por lo tanto, Redis es un compañero magnífico para WordPress, que utiliza un servidor de base de datos relacional más tradicional como almacén principal de contenido.

Puedes utilizar la interfaz de línea de comandos (CLI) de Redis para comunicarte con el servidor Redis de tu sitio WordPress. Utilizando la CLI de Redis (invocada en la línea de comandos como redis-cli), puedes solicitar y recibir respuestas del servidor Redis mediante programación, controlar los comandos ejecutados en una instancia de Redis, comprobar la latencia de una instancia y observar el estado del servidor en tiempo real.

Este tutorial te muestra cómo integrar Redis y tu sitio WordPress y utilizar la CLI de Redis para realizar operaciones de creación, lectura, actualización y eliminación (CRUD) desde tu terminal.

Conectar Redis a WordPress Utilizando DevKinsta

Para conectar un sitio WordPress a una base de datos Redis, utilizaremos DevKinsta, un conjunto de herramientas gratuitas de un solo clic para crear, desarrollar y desplegar rápidamente sitios WordPress desde tu entorno local.

DevKinsta pone en marcha localmente un sitio WordPress en Docker con las últimas versiones de sus dependencias, incluyendo un servidor web Nginx, PHP y una base de datos MariaDB compatible con MySQL. También incluye soporte CLI para WordPress.

DevKinsta está disponible para Windows, Linux y macOS. Puedes encontrar más información sobre la instalación cuando descargues DevKinsta.

Una vez finalizada la instalación, crea e instala un nuevo sitio de WordPress localmente en tu dispositivo utilizando el stack de alojamiento predeterminado.

DevKinsta ofrece tres opciones para crear localmente sitios de WordPress: un sitio nuevo con la configuración predeterminada, un sitio nuevo con la configuración personalizada y la clonación de un sitio existente alojado en Kinsta a tu entorno de desarrollo local.

Este tutorial utiliza la primera opción con la configuración predeterminada y las últimas versiones de Nginx, PHP, MariaDB y WordPress.

Una vez que hayas seguido estos pasos, podrás ver el panel de control de tu nuevo sitio en DevKinsta:

El panel de control de DevKinsta después de crear un nuevo sitio de WordPress.
El panel de control de DevKinsta después de crear un nuevo sitio de WordPress.

Toma nota de la Ruta del sitio. Este es el directorio que contiene los archivos y carpetas del sitio local. En la esquina superior derecha aparece el enlace al panel de control WP Admin. Por último, fíjate en el Host del Sitio, que es la URL que apunta a tu nuevo sitio de desarrollo.

Puedes abrir Docker Desktop para listar todos los contenedores que se ejecutan como dependencias en tu proyecto DevKinsta. Para ello, haz clic en Contenedores en la parte superior de la barra lateral izquierda:

Captura de pantalla: Lista del Escritorio Docker de los contenedores que se ejecutan en DevKinsta.
Lista de contenedores DevKinsta de Docker Desktop.

Ahora que tu sitio WordPress y las dependencias de los contenedores están en funcionamiento, estás listo para conectar una base de datos Redis a tu sitio:

  1. Haz clic en el botón WP Admin en DevKinsta para navegar a tu panel de administración de WordPress.
  2. Haz clic en la pestaña Plugins en el lado izquierdo.
  3. Haz clic en Añadir Nuevo y busca «Redis Object Cache»
Buscando Redis Object Cache al añadir plugins en WordPress.
Buscar el plugin Redis Object Cache dentro de WordPress.

Haz clic en Instalar Ahora junto al plugin. A continuación, confirma que está activo haciendo clic en la pestaña Plugins Instalados.

Captura de pantalla: Una lista de los plugins de WordPress instalados, con Redis Object Cache resaltado.
Plugins de WordPress instalados, incluido Redis Object Cache.

Cuando se activa por primera vez, el plugin Redis Object Cache informará de que no puede conectarse a una base de datos Redis. Lo solucionaremos creando un contenedor con una instancia de Redis dentro de Docker.

Abramos un terminal y creemos un contenedor de red llamado redisnet en el que ejecutar tu imagen de Redis:

docker network create -d bridge redisnet

Ahora, crea y ejecuta una imagen de Redis como contenedor independiente dentro de ese contenedor de red:

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

Tras iniciar la imagen contenedora, comprueba en Docker Desktop que la imagen Redis está en funcionamiento:

Captura de pantalla: Indicador de que la imagen demo_redis se está ejecutando en Docker Desktop.
Docker Desktop ejecutando la imagen demo_redis.

Recuerda que tu sitio WordPress se inició automáticamente dentro de un contenedor Docker. Puedes confirmar su nombre e ID de red del contenedor:

docker network ls 
Captura de pantalla: Salida del comando lista de redes de Docker.
Nombres e ID de red en Docker Desktop.

Arriba, la versión abreviada del ID de red para devkinsta_network es d1fa155f7a4d. Lo utilizaremos más adelante.

Una forma de conectar tu clúster y servidor Redis a tu sitio local de WordPress es conectando directamente las redes Redis y DevKinsta. Primero, verifica el ID del contenedor para Redis. Aquí, con el comando Docker para listar contenedores, estamos utilizando el modificador -l (último) para mostrar sólo el contenedor creado más recientemente:

docker ps -l
Captura de pantalla: La salida del comando Docker para mostrar información sobre los contenedores.
Información del contenedor generada por el comando ps de Docker.

En este ejemplo, el ID abreviado del contenedor aparece como c3ffc630e44c.

Conecta tu contenedor Redis a la red DevKinsta utilizando el ID de tu contenedor en lugar del nuestro en el comando que aparece a continuación.

docker network connect devkinsta_network c3ffc630e44c

Deberías haber añadido correctamente la imagen del contenedor Redis a la lista de contenedores en ejecución dentro de devkinsta_network. Para verificar la dirección IP de red del contenedor Redis, ejecuta el siguiente comando, sustituyendo nuestro ID de devkinsta_network por el que encontraste utilizando el comando network ls en tu proyecto:

docker inspect d1fa155f7a4d
Captura de pantalla: Salida del comando docker inspect.
Terminal mostrando parte de la salida del comando docker inspect.

En la imagen anterior, la dirección IP del contenedor demo_redis es 172.172.0.6. Anota la dirección IP en tu proyecto antes de proceder a la conexión.

Navega hasta el root del sitio de WordPress en tu máquina local, que se encuentra en la Ruta del sitio mostrada en DevKinsta. Abre el archivo wp-config.php en un editor de texto y añade el siguiente código en la sección de variables de configuración personalizadas:

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

La dirección IP que utilizas para WP_REDIS_HOST es la que descubriste para demo_redis cuando ejecutaste el comando docker inspect.

Este código de configuración añade el cliente Redis, el host y el puerto para que el pluging pueda acceder al servidor Redis dentro del mismo contenedor Docker y de la misma red que DevKinsta.

Para confirmar que el plugin está conectado y funcionando

  1. Ve a la página de plugins de WordPress en el panel de control del administrador.
  2. Haz clic en el enlace Configuración de Redis Object Cache.
  3. En la página Configuración, haz clic en el botón Activar Caché de Objetos.
Captura de pantalla: Activación de la Caché de Objetos Redis en WordPress.
La caché de objetos Redis es accesible y permite la escritura, pero es necesario activarla.

Una vez activada la Caché de Objetos Redis, su página de Configuración tendrá el siguiente aspecto:

Captura de pantalla: La página de Configuración de Redis Object Cache con el plugin activado.
La página de Configuración de Redis Object Cache muestra que Redis está conectado y funcionando.

Iniciar la CLI de Redis

La herramienta Redis CLI (redis-cli) viene incluida con un servidor Redis. Puedes instalar un servidor Redis en los sistemas operativos Windows, macOS y Linux.

Sin embargo, aquí ya estamos ejecutando Redis en Docker, por lo que podemos lanzar la herramienta CLI dentro de nuestro contenedor demo_redis.

Más arriba, cuando utilizamos el comando docker ps, obtuvimos el ID del contenedor que ejecuta la imagen de Redis. El nuestro empezaba por c3ffc630e44c. Podemos utilizar este ID abreviado para apuntar a demo_redis y lanzar un intérprete de comandos dentro de él:

docker exec -it c3ffc630e44c /bin/sh

Ahora puedes invocar la herramienta redis-cli:

Captura de pantalla: redis-cli invocado en Docker.
redis-cli invocado desde un shell en Docker.

Puedes hacer ping al servidor para probar la conexión:

ping
Captura de pantalla: haciendo ping al servidor Redis utilizando redis-cli.
Respuesta del servidor a un ping en redis-cli.

Para conectarte al servidor Redis utilizando su dirección IP y su puerto y probar esa conexión, ejecuta el siguiente comando (utilizando la dirección IP de tu contenedor demo_redis):

redis-cli -h 172.172.0.6 -p 6379 ping
Captura de pantalla: Haciendo ping al servidor Redis a través de una dirección IP.
Enviar un ping al servidor Redis a través de su dirección IP y puerto.

Te has conectado correctamente al servidor Redis tanto en tu máquina local como en el contenedor Docker.

A continuación, comprueba que tu sitio WordPress está almacenando datos en la caché de Redis utilizando redis-cli y su comando keys * para mostrar todas las claves de la base de datos:

Captura de pantalla: Listado de las claves del servidor Redis.
Recuperando todas las claves de la base de datos Redis con una búsqueda de comodín asterisco.

Puedes ver que algunos datos de WordPress ya se han guardado en la caché de Redis.

Operaciones CRUD en la CLI de Redis

Puedes realizar operaciones CRUD en tu base de datos Redis utilizando la herramienta CLI.

Vamos a obtener el valor de una clave que copiamos de nuestra anterior petición Redis CLI keys *.

get :u.:~8r]mC->Re/gG!&mGU.[{+;]t7o<H~)c*pcU=Lx_Vs{9JkdxkL:X;M-@Y$Svwp:user_meta:1
Captura de pantalla: Resultados de una consulta a la base de datos Redis.
Respuesta de Redis a una solicitud «get» utilizando redis-cli.

Manipulemos el contenido de la base de datos Redis invocando a redis-cli y utilizando los comandos set, get y del para crear un par clave/valor, consultar la nueva clave y luego borrarla:

Captura de pantalla: Creación, consulta y eliminación de datos clave/valor Redis.
Operaciones CRUD sencillas en una base de datos Redis utilizando redis-cli.

Más arriba, al intentar recuperar el valor de una clave que ha sido eliminada, se obtiene nil.

Hay muchas más operaciones avanzadas disponibles cuando se utiliza la CLI de Redis.

Resumen

La CLI de Redis es una forma sencilla de probar los comandos de Redis en tu sitio web antes de pasarlos a un entorno en producción. También es una forma estupenda de monitorizar la actividad en una instancia de Redis.

En Docker, una instancia de Redis proporciona las herramientas que necesitas para gestionar la base de datos — incluido redis-cli — agrupadas en un único contenedor.

Mientras tanto, el enfoque Dockerizado de DevKinsta facilita el desarrollo de un sitio WordPress en una máquina local y su posterior despliegue en producción con unos pocos clics de ratón.

Si aún no gestionas algunos de los 118,000 sitios de WordPress alojados en Kinsta, descubre las funciones avanzadas disponibles en todos nuestros planes de Alojamiento Administrado de WordPress.

Steve Bonisteel Kinsta

Steve Bonisteel es un Editor Técnico de Kinsta que comenzó su carrera de redactor como periodista de prensa escrita, persiguiendo ambulancias y camiones de bomberos. Lleva tratando temas relacionados con la tecnología de Internet desde finales de la década de 1990.