Azure Redis Cache en Symfony 4

Casi me desespero pero al final he conseguido configurar Azure Redis Cache en Symfony 4, utilizando el componente que viene con el propio framework. Aquí te dejo los pasos por si te desesperas tú también.

Crear proyecto con Symfony 4

Ya sabes, utiliza el comando composer create-project para crear el esqueleto de una aplicación web.

composer create-project symfony/website-skeleton azure-redis-cache-loves-symfony

Instalar predis/predis

A través de composer require instala la librería predis/predis para poder usar el adaptador de Redis. En el momento de escribir este artículo la versión de la misma era la 1.1.

composer require predis/predis

Configura config/services.yaml

Este es el archivo services.yaml por defecto más los valores necesarios para cache con Redis:

Configurar config/packages/cache.yaml

En todos los artículos e hilos de StackOverflow que me he recorrido, no encontré ninguno que hablara del archivo cache.yaml. Ahora ya aparece por defecto con el esqueleto que he utilizado para este ejemplo:

Por supuesto, en tu archivo .env necesitas los valores para REDIS_HOST y REDIS_PORT. En el caso de REDIS_HOST (6379) he utilizado el siguiente formato:

[email protected]_AZURE_REDIS_NAME.redis.cache.windows.net

Úsalo

Ahora falta comprobar que todo funciona correctamente. Crea un controlador de prueba con el siguiente contenido:

Además, he modificado un poco la página home/index.html.twig para que muestre el valor de cached.

La primera vez debería de aparecer el valor de Cached: no, al no tener el valor de la variable en Azure Redis Cache. Sin embargo, una vez se ha realizado la primera petición a tu página, si vuelves a cargarla esta aparecerá con el valor almacenado ya en cache, que es yes 🙂

Azure Redis Cache and Symfony 4
Azure Redis Cache and Symfony 4

El código lo tienes en mi GitHub.

¡Saludos!