Aprende a instalar y usar fácilmente la extensión de Redis localmente en XAMPP para comunicarte con los servidores de Redis.

Cómo instalar y usar la extensión Redis en XAMPP localmente en Windows 10

Estoy seguro de que ya has oído hablar de Redis, el almacén de estructura de datos en memoria, que se utiliza como base de datos y caché. Tarde o temprano, si alguna vez trabajas con un proyecto creado con PHP que maneja una cantidad significativa de tráfico y puede requerir escalado horizontal, tendrás que trabajar si o si con Redis. Por supuesto, en un entorno local, sería genial trabajar también con Redis, por lo que no tienes que crear condicionales enormes para verificar si está disponible en el entorno actual y ejecutar alguna lógica si no lo está. Sería más sencillo tener Redis disponible localmente también, solo para que todo el proyecto funcione como de costumbre en tu estación de trabajo.

En este artículo, te explicaré cómo instalar fácilmente la extensión de Redis para PHP en tu instalación de XAMPP en Windows.

Notas previas a la instalación

Necesitas conocer la siguiente información sobre la distribución PHP que estás utilizando actualmente en XAMPP:

Nombre Valor por defecto
Arquitectura (PHP) x64
Thread Safety 

Enabled

TS: significa Thread Safety Enabled

NTS: significa Thread Safety Disabled

Puedes obtener esos valores con la función phpinfo() de PHP dentro de un script vacío:

<?php

phpinfo();

Una vez que conozcas estos valores, deberías poder seguir el resto del tutorial.

1. Descarga la DLL de Redis

Lo primero que necesitas es la biblioteca de enlaces dinámicos de Redis, que afortunadamente para nosotros ya está compilada y disponible en el repositorio PECL de PHP en este sitio web . Puedes seleccionar la versión que se adapte a tus necesidades, en mi caso, usaré la última versión estable ya que estoy usando PHP 8, haz clic en el enlace DLL con el ícono de Windows:

Download Redis DLL PECL

Luego se cargará una nueva ventana, en esta página desplázate hasta DLL List y haz clic en la versión correcta para tu versión de PHP con la arquitectura correcta (de XAMPP, no tu sistema operativo) y Thread Safe en caso de que esté habilitado en tu distribución). En mi caso, estoy usando la última versión de XAMPP con PHP 8.0 de 64 bits con Thread Safety habilitado, así que en mi caso, descargaré la siguiente:

Redis DLL Download PHP 8

Esto iniciará la descarga de un archivo ZIP. Es de nuestro interés el archivo php_redis.dll que se incluye en él, así que ténlo a mano ya que necesitarás el archivo en el siguiente paso.

2. Almacena la DLL en el directorio ext y habilita la extensión en php.ini

Ahora, desde el zip descargado, mueve el archivo php_redis.dll al directorio ext de PHP en tu directorio XAMPP ( C:\xampp\php\ext):

Redis DLL Extension Directory PHP

Esto nos permitirá usar la extensión en PHP, sin embargo, también debemos habilitarla. Abre el archivo php.ini (C:\xampp\php\php.ini) y habilita la extensión agregando la siguiente línea nueva debajo del área de extensiones:

extension=redis

No encontrarás la línea mencionada en el archivo de configuración, por eso debes escribirla tu mismo. Guarda los cambios del archivo ini y reinicia Apache, para que los cambios se apliquen una vez que comience de nuevo.

3. Probando si la extensión está habilitada 

¡Y eso es! Después de reiniciar Apache y habilitar la extensión en php.ini, deberías poder usar Redis con PHP. Puedes verificar fácilmente si la extensión está habilitada verificando tu phpinfo():

Redis PHP Extension phpinfo

O, alternativamente, ejecuta algún código que use Redis en caso de que tengas un servidor que ejecute Redis a través de docker localmente o un servidor Redis real, por ejemplo, el siguiente código debería tener éxito e imprimir el nombre de usuario "sdkcarlos":

try {
    // Crear instancia de Redis
    $redis = new \Redis();
    
    // Conectarte a un servidor redis
    // En este caso dentro de la misma maquina (localhost) y usando el puerto predeterminado de redis
    $redis->connect('127.0.0.1', 6379);

    // Define y almacena alguna llave
    $redis->set('user', 'sdkcarlos');

    // Luego obten el valor
    $user = $redis->get('user');

    // Deberia imprimir: sdkcarlos
    print($user);
} catch (Exception $ex) {
    echo $ex->getMessage();
}

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores