En esta página:
En la anterior parte llamada Tutorial Gratis de Redis: Primeros Comandos, pudimos apreciar los principales comandos que podemos usar en la terminal mediante la redis-cli, todos ellos te pueden servir en algún momento cuando estes desarrollando un proyecto. Los comandos te pueden facilitar muchas tareas y salir de varios atascos en los que te encuentres mientras desarrolles con Redis. En esta tercera parte te enseñaré a Como Usar Redis en un Proyecto Real, vamos con ello.
Partes
- Instalación
- Primeros Comandos
- Usando en Proyecto Real
- Herramientas GUI
- Ultimos Apuntes
Antes de continuar, te invito a escuchar el Podcast: “Porque Algunos Desarrolladores no Terminan El Proyecto de Un Cliente” (En Spotify, Sound Cloud y Apple Podcasts)” y “Aplicación Móvil Nativa vs Hibrida ¿Cual es Mejor?” (Anchor Podcast):
Spotify: | Sound Cloud: | Apple Podcasts | Anchor Podcasts |
Bien ahora continuemos con el Post: Tutorial Gratis de Redis: Usando en Proyecto Real.
Usando en Proyecto Real
Para usar Redis necesitas tener un servidor, ya sea local o de pago, dentro de el ya deberías haber elegido con que lenguaje de programación trabajarás. Redis tiene soporte para los lenguajes de programación Java, Python, Node JS, .NET, Go, Ruby, entre otros. Puedes ver la lista completa de los lenguajes que Redis soporta en este enlace.
En la primera parte de este tutorial menconamos que Redis trabaja mejor en Linux, esto es importante recordar ya que estoy trabajando en Ubuntu (Linux) y el navegador Chromiun.
Una vez que ya tenemos nuestro servidor, sea local o de pago, vamos a crear un proyecto nuevo, yo integraré PHP y Redis para este tutorial.
Proyecto Redis con PHP
Para nuestro proyecto vamos a crear un directorio, de esta manera mantenemos el orden, al directorio le pondré de nombre redisapp, tu le puedes poner el nombre que desees:
1 2 3 4 5 6 |
/redisapp ├── ├── "Acá van los archivos y directorios del proyecto" ├── |
Creamos un nuevo proyecto con PHP, mediante composer, para ello ejecutamos el siguiente comando en la consola de comandos (Sigue los pasos que te indique hasta que finalizes):
1 2 3 4 |
# Comando para crear un nuevo proyecto PHP con Composer composer init |
Luego de crear el proyecto con Composer, este nos ha creado un archivo llamado package.json:
1 2 3 4 |
/redisapp ├── package.json // Este archivo |
Dentro del directorio redisapp creamos un archivo PHP llamado index.php, tu le puedes poner el nombre que desees:
1 2 3 4 |
/redisapp ├── index.php // Creo y abro este archivo |
Abre el archivo index.php y colocale el siguiente contenido, con ello verificas que este todo bien:
1 2 3 4 5 |
<?php echo "Nube Colectiva !"; |
Ahora iniciamos un servidor de PHP en el puerto 8080:
1 2 3 4 |
# Comando para crear un servidor PHP php -S localhost:8080 |
Deberías de ver el mensaje “Nube Colectiva !” sin problemas en tu navegador:
Con la imagen anterior corroboramos que nuestro servidor PHP funciona correctamente.
Ahora vamos a instalar GuzzleHttp, este nos permitirá crear rutas para nuestra API REST y manejar las solicitudes, para instalarlo ejecutamos el siguiente comando:
1 2 3 4 |
# Comando para instalar GuzzleHttp composer require altorouter/altorouter guzzlehttp/guzzle |
También hay que instalar la extensión phpredis que permite usar Redis en PHP:
1 2 3 4 |
# Comando para instalar la extensión "phpredis" pecl install redis |
Luego de instalar phpredis, agrega la siguiente línea en tu archivo php.ini:
1 2 3 4 |
# Agrega la extensión "phpredis" en tu archivo "php.ini" extension=redis.so |
Paso seguido abrimos el archivo index.php y le agregamos lo siguiente (He colocado comentarios para explicar que hace cada línea del 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 |
<?php ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); error_reporting (E_ALL); // Importamos el archivo autoload de vendor require_once __DIR__ . '/vendor/autoload.php'; // Importamos el cliente GuzzleHttp use GuzzleHttp\Client; // Instanciamos el router y cliente web $router = new AltoRouter(); $client = new Client(); // Instanciamos Redis a nuestro servidor $redis = new \Redis(); $redis->connect('127.0.0.1'); // Ruta Principal $router->map('GET', '/', function () { // Setemamos el Content-Type de la respuesta JSON header('Content-Type: application/json; charset=utf-8'); // Devolvemos el siguiente contenido echo json_encode(['data' => 'Nube Colectiva']); }); /** * Ruta para el endpoint postres */ $router->map('GET', '/postres', function () use ($client, $redis) { // Comprobamos si Redis tiene la key "postres" if (!$redis->exists('postres')) { $response = $client->request('GET', 'https://nubecolectiva.com/api/v1/postres'); // Almacenamos los datos para el próximo uso $redis->setex( 'postres', // Key 3600, // Tiempo de cacheado Redis $response->getBody()->getContents() // Cargamos los datos cacheados ); } // Devolvemos el contenido header('Content-Type: application/json; charset=utf-8'); echo json_encode([ 'data' => json_decode($redis->get('postres')) ]); }); |
Entonces lo que haré es leer la ruta /postres con la herramienta Postman, al pedir los datos con el método GET obtengo los datos en formato JSON, fijate que en el tiempo de respuesta me indica que los datos los he obtenido en un tiempo de 856 ms (miliseconds o milisegundos):
Ahora veamos que pasa si volvemos a pedir datos al endpoint /postres:
En la imagen anterior puedes ver que el tiempo que toma la API REST en devolver los datos es de 20 ms, esto es más que genial.
Lo que pasa es que Redis guardo la información de la primera petición al endpoint /postres en la memoria del servidor (computador) y cuando volvemos a solicitar los datos, ya no llama al endpoint directamente, si no que llama y nos muestra la información guardada en la memoria. Esto hace que las aplicaciones con Redis sean más rápidas.
Bien hasta aquí llegamos con esta tercera parte en donde hemos usado Redis en un proyecto real.
Ten Paciencia, lo que quiero es que conozcas bien como se crea este proyecto y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
Nota (s)
- En la siguiente parte veremos algunas herramientas GUI para gestionar los datos de Redis.
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.