Cómo Usar Redis con PHP y MariaDB en Ubuntu

Para esto ya debemos tener instalado el lenguaje de programación PHP y la base de datos MariaDB en nuestro sistema operativo Ubuntu.
Estoy usando un servidor Apache 2 para este tutorial.
Así que procura primero tener en orden tu entorno para poder usar la base de datos en memoria Redis.
1. Instalamos Redis
Sigue los siguientes pasos:
1.1 Actualiza el repositorio de paquetes de Ubuntu
Actualiza el repositorio de Ubuntu:
1 2 3 |
sudo apt update |
Aquí instalaremos el paquete redis-server y php-redis.
El paquete redis-server instala el servidor Redis y el paquete php-redis instala la extensión de PHP para redis:
1 2 3 |
sudo apt install redis-server php-redis |
1.2 Crea un archivo de configuración
Lo hacemos con permisos de root (sudo):
1 2 3 |
sudo nano /etc/redis/redis.conf |
Dentro del archivo redis.conf agrega lo siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# Redis configuration file example bind 127.0.0.1 protected-mode yes port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised systemd pidfile /var/run/redis/redis-server.pid loglevel notice logfile /var/log/redis/redis-server.log databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dir /var/lib/redis requirepass "" appendonly no |
Guarda con CTRL + O y ENTER
Cierra el editor nano con CTRL + X
1.3 Crea estas carpetas (Si no las tienes)
Estas 5 carpetas:
1 2 3 4 5 6 |
sudo mkdir -p /var/lib/redis sudo chown redis:redis /var/lib/redis sudo mkdir -p /var/log/redis sudo chown redis:redis /var/log/redis |
1.4 Habilita Redis
Activamos Redis en nuestro Ubuntu:
1 2 3 4 5 6 7 8 |
sudo systemctl enable redis-server Synchronizing state of redis-server.service with SysV service script with /usr/lib/systemd/systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable redis-server Created symlink /etc/systemd/system/redis.service → /usr/lib/systemd/system/redis-server.service. Created symlink /etc/systemd/system/multi-user.target.wants/redis-server.service → /usr/lib/systemd/system/redis-server.service. |
1.5 Inicia el Servidor de Redis
Ejecutando el siguiente comando:
1 2 3 |
sudo systemctl start redis-server |
1.6 Verifica que Redis funcione
Este comando te debe devolver un PONG:
1 2 3 4 5 |
redis-cli ping PONG |
Si devuelve PONG tu Redis ha sido instalado correctamente.
2. Configuramos MariaDB
Sigue los siguientes pasos:
2.1 Ingresa a MariaDB
Ejecuta este comando (te pedirá que coloques tu password):
1 2 3 4 5 |
mysql -u root -p Enter password: |
Si no recuerdas tu password de MariaDB puedes seguir este tutorial.
2.2 Crea una base de datos y tabla
Creamos una base de datos llamada ejemplo_crud
Seleccionamos la base de datos ejemplo_crud y en ella creamos una tabla llamada usuarios:
1 2 3 4 5 6 7 8 9 10 11 12 |
# Crea la base de datos y selecciónala CREATE DATABASE ejemplo_crud; USE ejemplo_crud; # Crea una tabla 'usuarios' en la base de datos CREATE TABLE usuarios ( id INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE ); |
Las consultas SQL anteriores las puedes copiar y pegar en la shell de MariaDB (No olvides quitarle los comentarios) y presionar ENTER para ejecutarlas:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
MariaDB [(none)]> USE ejemplo_crud; Database changed MariaDB [ejemplo_crud]> MariaDB [ejemplo_crud]> CREATE TABLE usuarios ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> nombre VARCHAR(100) NOT NULL, -> email VARCHAR(100) NOT NULL UNIQUE -> ); Query OK, 0 rows affected (0,062 sec) MariaDB [ejemplo_crud]> |
2.3 Sal de MariaDB
Con el siguiente comando:
1 2 3 4 |
MariaDB [ejemplo_crud]> exit Bye |
3. Tareas CRUD
Vamos a realizar las 4 operaciones básicas de todo sistema llamada CRUD (Create, Read, Update y Delete).
3.1 Crea un archivo PHP
Creamos un archivo llamado app.php con el editor nano:
1 2 3 |
sudo nano /var/www/html/app.php |
Dentro del archivo colocamos el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<?php $mysqli = new mysqli("localhost", "root", "tu-password", "ejemplo_crud"); // Ajusta los datos $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $accion = $_GET['accion'] ?? ''; switch ($accion) { case 'crear': $nombre = $_POST['nombre']; $email = $_POST['email']; $mysqli->query("INSERT INTO usuarios (nombre, email) VALUES ('$nombre', '$email')"); echo "Usuario creado"; break; case 'leer': $id = $_GET['id']; $cacheKey = "usuario:$id"; if ($redis->exists($cacheKey)) { echo "Desde Redis: " . $redis->get($cacheKey); } else { $res = $mysqli->query("SELECT * FROM usuarios WHERE id=$id"); $user = $res->fetch_assoc(); if ($user) { $json = json_encode($user); $redis->set($cacheKey, $json); // Guarda sin expiración echo "Desde MySQL: " . $json; } else { echo "No encontrado"; } } break; case 'actualizar': $id = $_POST['id']; $nombre = $_POST['nombre']; $email = $_POST['email']; $mysqli->query("UPDATE usuarios SET nombre='$nombre', email='$email' WHERE id=$id"); $redis->del("usuario:$id"); // Borrar cache echo "Usuario actualizado"; break; case 'eliminar': $id = $_POST['id']; $mysqli->query("DELETE FROM usuarios WHERE id=$id"); $redis->del("usuario:$id"); echo "Usuario eliminado"; break; default: echo "Acción no válida"; } ?> |
3.2 Crear registro (Create)
Creamos un nuevo usuario:
1 2 3 4 5 |
curl -X POST -d "nombre=Ana&email=ana@test.com" "http://localhost/app.php?accion=crear" Usuario creado |
3.3 Leer registro (Read)
Podemos ver el usuario guardado en MySQL abriendo la ruta http://localhost/app.php?accion=leer&id=1 en nuestro navegador (Si estas en un VPS cambia localhost por tu IP o dominio):
Si vuelves a actualizar te aparecerán los datos obtenidos desde Redis:
3.3.1 Ver los datos en Redis
Para estar más seguros de que los datos se guardaron correctamente en Redis.
Podemos verlos ingresando al cliente de Redis:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Ingresamos a Redis redis-cli # Listamos las claves almacenadas 127.0.0.1:6379> keys * 1) "usuario:1" # Mostramos el valor de nuestra clave 127.0.0.1:6379> get usuario:1 "{\"id\":\"1\",\"nombre\":\"Ana\",\"email\":\"ana@test.com\"}" # Salimos de Redis 127.0.0.1:6379> exit |
3.3.2 Ver los datos en la terminal
También puedes ver los datos en la terminal así:
1 2 3 4 5 |
$ curl "http://localhost/app.php?accion=leer&id=1" Desde Redis: {"id":"1","nombre":"Ana","email":"ana@test.com"}n |
3.4 Actualizar registro (Update)
Ejecutamos el siguiente comando:
1 2 3 4 5 |
curl -X POST -d "id=1&nombre=Ana Actualizada&email=ana@nuevo.com" "http://localhost/app.php?accion=actualizar" Usuario actualizado |
Puedes leer el registro actualizado como te explique en el punto 3.3 Leer registro (Read).
3.5 Eliminar registro (Delete)
Y para eliminar ejecutamos el comando:
1 2 3 4 5 |
curl -X POST -d "id=1" "http://localhost/app.php?accion=eliminar" Usuario eliminado |
Si intentas leer el registro como te explique en el punto 3.3 Leer registro (Read) verás que ya no aparece, en su lugar verás el texto No encontrado.
3.5.1 Verificar en Redis
Si revisamos en Redis tampoco aparece el registro:
1 2 3 4 5 6 7 8 9 10 11 |
redis-cli 127.0.0.1:6379> keys * (empty array) 127.0.0.1:6379> get usuario:1 (nil) 127.0.0.1:6379> exit |
Asi de fácil puedes usar Redis con PHP y MySQL en Ubuntu.
Conclusión
Hacer esta integración parece un desafío, pero no es así.
Es simplemente tu camino de aprendizaje.
Una vez que comprendas cómo se hace, podrás crear proyectos más complejos con Redis, PHP y MySQL.
Síguenos en nuestras Redes Sociales y demás canales digitales para que no te pierdas nuestros próximos contenidos.
- Redis
- 28-05-2025
- 28-05-2025
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)