Puntos clave:
- El almacenamiento en caché mejora drásticamente la velocidad de las aplicaciones Laravel, ya que almacena los datos utilizados con más frecuencia, reduce las consultas a la base de datos y mejora la experiencia del usuario.
- El flexible sistema de almacenamiento en caché de Laravel admite varios controladores, como File, Redis y Memcached, lo que facilita su adaptación a distintas necesidades, siendo Redis la mejor opción para producción.
- Un almacenamiento en caché eficaz implica elegir el controlador adecuado, utilizar métodos como Cache::remember() para una recuperación/almacenamiento eficaz de los datos, comprender las estrategias de invalidación de la caché y supervisar regularmente el rendimiento para que todo funcione sin problemas.
¿Quieres mejorar el rendimiento de tu aplicación web Laravel? Si es así, integrar la caché es imprescindible.
En la era digital actual, la velocidad lo es todo. Tanto si se trata de una plataforma de comercio electrónico como de una red social, los usuarios esperan que las aplicaciones se carguen y respondan rápidamente.
Ahí es donde entra en juego el almacenamiento en caché, una poderosa herramienta que puede ayudar a acelerar tu aplicación web, reduciendo los tiempos de carga y proporcionando una mejor experiencia al usuario.
En esta completa guía, nos sumergiremos a fondo en el sistema de caché de Laravel y te mostraremos cómo integrarlo en tu aplicación web. Cubriré los diferentes tipos de cachés disponibles en Laravel, incluyendo caché de archivos, de base de datos y Redis.
Si tienes un sitio web Laravel y quieres acelerarlo, estás de suerte. En este artículo, te mostraré cómo utilizar varios métodos de almacenamiento en caché en Laravel.
- Qué es Laravel Caching
- Por qué es importante el caché
- Ventajas de usar Laravel Cache
- Requisitos previos para instalar Laravel Cache en tu aplicación en Cloudways
- Cómo integrar la caché de Laravel en tu aplicación
- Pruebas sin caché de Laravel
- Pruebas y monitorización de la caché en aplicaciones Laravel
- Integrar Redis en Laravel con Cloudways
- Integrar Varnish en Laravel con Cloudways
- Uso y métodos de la caché de Laravel
- Buenas prácticas para mantener y actualizar la caché de Laravel
En este artículo, demostraré cómo utilizar varios métodos de almacenamiento en caché en Laravel.
Configuración de la caché de Laravel con 1 clic
Despliega cachés preoptimizadas (Redis, Memcached, OPcache) con:
✓ Controladores de caché autoconfigurados
✓ Control en tiempo real de los aciertos y errores de la caché
✓ Soporte de etiquetado de caché sin fisuras
Qué es Laravel Caching
El almacenamiento en caché de Laravel es una potente característica del framework PHP Laravel que te permite mejorar el rendimiento y la eficiencia de tus aplicaciones. Con Laravel, puedes configurar y cambiar fácilmente entre varios motores de caché sin escribir código.
Para configurar las opciones de almacenamiento en caché de Laravel, puedes utilizar un único archivo de configuración que contiene todos los ajustes necesarios para tu aplicación. Además, Laravel admite todos los backends de almacenamiento en caché más populares, como Memcached y Redis, y proporciona una API unificada para interactuar con diferentes marcos de almacenamiento en caché.
Una de las principales ventajas del almacenamiento en caché de Laravel es el almacenamiento automático en caché de las plantillas Blade, que son las vistas utilizadas para generar páginas HTML en tu aplicación. Laravel analiza las plantillas Blade en un formato PHP y HTML puro que puede almacenarse en caché y reutilizarse en múltiples peticiones, mejorando el rendimiento general de tu aplicación.
En general, el almacenamiento en caché de Laravel es una característica esencial para optimizar el rendimiento de tus aplicaciones PHP.
Por qué es importante el caché
El almacenamiento en caché es un método de almacenar temporalmente datos en una ubicación más rápida y fácilmente accesible, reduciendo la necesidad de recuperarlos constantemente de una capa de almacenamiento más lenta. El almacenamiento en caché es importante porque puede mejorar significativamente el rendimiento de las aplicaciones al reducir el tiempo que se tarda en recuperar los datos, lo que se traduce en tiempos de respuesta más rápidos y una mejor experiencia para el usuario.
Esto es especialmente útil para aplicaciones que manejan grandes cantidades de datos, como sitios de comercio electrónico, redes sociales y motores de búsqueda.
Además de mejorar el rendimiento, la memoria caché también puede ayudar a reducir la carga del servidor. Al recuperar los datos de la memoria caché en lugar de la fuente original, la aplicación puede enviar menos peticiones al servidor, reduciendo la carga de trabajo de éste. Esto puede mejorar la estabilidad de la aplicación, evitar tiempos de inactividad y reducir los costes asociados a los recursos del servidor, como el uso de CPU y memoria.
En general, el almacenamiento en caché es una poderosa herramienta para mejorar el rendimiento y la eficiencia de las aplicaciones, y es un componente esencial de muchos sitios web y aplicaciones de alto tráfico.
Ventajas de usar Laravel Cache
La caché de Laravel es un potente sistema de almacenamiento en caché que puede proporcionar varias ventajas a tu aplicación Laravel. Estas son algunas de las principales ventajas de utilizar la caché de Laravel:
Rendimiento mejorado
La caché de Laravel mejora el rendimiento de la aplicación almacenando en caché los datos a los que se accede con frecuencia, lo que reduce el tiempo de recuperación de datos de la base de datos o de API externas. Esto se traduce en tiempos de respuesta más rápidos de la aplicación, menor carga del servidor y mejor experiencia del usuario, especialmente durante periodos de mucho tráfico. La caché de Laravel también ofrece flexibilidad para cambiar fácilmente entre motores de caché.
Reducción de la carga de la base de datos
El almacenamiento de datos en caché reduce la carga de tu servidor de base de datos al almacenar en la caché los datos a los que se accede con frecuencia. Esto evita la necesidad de recuperar los datos de la base de datos repetidamente, lo que reduce el número de consultas ejecutadas y mejora el rendimiento general del sistema.
Flexibilidad
La caché de Laravel ofrece flexibilidad al permitirte elegir entre varios controladores de caché, como la caché basada en archivos, en bases de datos y en Redis. Puedes seleccionar la estrategia de almacenamiento en caché que mejor se adapte a las necesidades de tu aplicación en función de factores como el tipo de datos, el volumen y el tráfico previsto. La caché de Laravel también es fácil de configurar y gestionar, lo que simplifica la configuración y el mantenimiento.
Ahora que ya sabes qué es la caché de Laravel, su importancia y sus ventajas, vamos a ver cómo puedes implementar la caché de Laravel en tu aplicación
Requisitos previos para instalar Laravel Cache en tu aplicación en Cloudways
Antes de que puedas instalar Laravel Cache en tu aplicación en Cloudways, hay algunos requisitos previos que debes cumplir.
Estos requisitos previos son necesarios para garantizar que tu aplicación funcione sin problemas después de instalar Laravel Cache.
Requisitos del servidor
Para el propósito de este tutorial, asumo que tienes una aplicación Laravel instalada en un servidor web.
Mi configuración es la siguiente:
- Laravel 11.x
- PHP 8.x
- MySQL
Para asegurarme de no distraerme con problemas a nivel de servidor, decidí desplegar mi aplicación Laravel en la plataforma de alojamiento gestionado Cloudways. Hacerlo así no sólo ayuda a los usuarios a alojar proyectos Laravel en pasos rápidos, sino que también se ocupa de los problemas a nivel de servidor y ofrece un gran devstack del que aprovecharse. Puedes probar Cloudways gratis registrándote rápidamente para obtener una cuenta.
Aplicaciones Laravel 300% más rápidas con Caché
Nuestra pila garantiza:
✓ Tiempos de respuesta en caché <50 ms
✓ Autoescalado para cargas de trabajo con mucha caché
✓ Recursos Redis/Memcached dedicados
Elegir el controlador de caché de Laravel
Laravel proporciona una API eficiente y eficaz para diferentes backends de caché. Puedes encontrar la configuración de la caché de Laravel en la carpeta config/cache.php .
Dentro del archivo, puedes especificar qué controlador de caché deseas utilizar como predeterminado. Algunos de los backends de caché más populares de Laravel son:
- Memcached
- Redis
- Base de datos
- Archivo
- Matriz
Para cambiar el controlador de caché, sólo tienes que abrir el archivo .env y editar el archivo Cache_Driver =.
¿Por qué Cloudways?
Cloudways ofrece una gama de herramientas optimizadas para simplificar tu proceso de desarrollo web. Con un solo clic, puedes instalar Laravel y otros paquetes, incluidas herramientas de configuración de caché. Esta accesibilidad sin fisuras no sólo agiliza la configuración de la aplicación web, sino que también se alinea perfectamente con la eficiencia del alojamiento Laravel.
Cloudways también ofrece una pila optimizada de herramientas, como Nginx, Laravel Varnish, Memcached, el acelerador HTTP de Apache, PHP 8.x, MySQL y muchas otras, que están diseñadas para mejorar el rendimiento de tu aplicación. Estas herramientas están preconfiguradas, por lo que no tienes que preocuparte de hacer ningún cambio.
Si necesitas añadir scripts avanzados a tu aplicación, Cloudways te lo pone fácil sin necesidad de configuraciones externas. Por ejemplo, puedes añadir caché Redis o Elasticsearch a tu aplicación sin ninguna complicación.
Para abreviar, Cloudways simplifica el proceso de desarrollo web, permitiéndote centrarte en crear tu aplicación sin preocuparte de la configuración del servidor.
Cómo integrar la caché de Laravel en tu aplicación
Para mostrar cómo afecta el almacenamiento en caché al rendimiento de una aplicación web Laravel, añadí la caché Laravel a la plataforma de alojamiento gestionado Cloudways.
Primero he instalado una nueva aplicación Laravel mediante el proceso de instalación rápida de 1 clic.
- Para el despliegue de la aplicación, siempre puedes elegir la infraestructura en la nube que desees.
- Para este tutorial, he lanzado mi aplicación en el servidor de la nube DigitalOcean.

- Una vez iniciado tu servidor gestionado > Dirígete a Detalles de acceso.

- Ahora, dirígete a los servidores y utiliza las credenciales maestras para iniciar sesión en los archivos Laravel instalados.

Creación del modelo de base de datos y migración
Tras una instalación correcta, es hora de crear el modelo y la migración pegando el siguiente código:
php artisan make:model Employee-m

- A continuación, abre la carpeta de migración, el archivo de migración de empleados y pega el código que se menciona a continuación.
public function up() {
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string("emp_name");
$table->string("emp_details");
$table->timestamps();
});
}
- Una vez configurados correctamente los campos de migración, ejecuta el comando de migración como se indica a continuación:
PHP artisan migrate


Implementar la siembra de bases de datos
Ahora el siguiente paso es sembrar la tabla «artículos». Para ello, abre el archivo database/seeds/DatabaseSeeder.php y actualiza el código Run():
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use App\Employee;
use Faker\Factory as Faker;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$faker = Faker::create();
foreach(range(1, 30) as $index) {
Employee::create([
'emp_name' => $faker->sentence(5),
'emp_deatils' => $faker->paragraph(6)
]);
}
}
}
La biblioteca Faker de Laravel genera datos de demostración falsos con fines de prueba. Por ahora, estoy utilizando el método PHP range() para generar 30 columnas de datos de demostración. Sólo tienes que copiar y pegar el siguiente comando para sembrar los datos en los campos.
Php artisan db:seed

Ahora, abre el gestor de bases de datos Cloudways, donde verás decenas de tablas llenas de datos falsos de demostración.

Utilizar el controlador de la base de datos
Ahora, crea un controlador que procese las peticiones y el almacenamiento en caché según tus requisitos. Sólo tienes que copiar y pegar el siguiente comando:
php artisan make:controller EmployeeController

Crear ruta de base de datos
Ahora, añade una ruta en el archivo app/Http/routes.php que apunte al método index del controlador:
Route::group(['prefix' => 'api'], function() {
Route::get('employee', 'EmployeeController@index');
});
Pruebas sin caché de Laravel
Ahora la aplicación está lista, pero aún no está integrada con la caché de Laravel. Por ahora, vamos a probar la aplicación sin la caché de Laravel utilizando POSTMAN:
Abramos el archivo Employeecontroller y peguemos el siguiente código en la función index().
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Employee;
class EmployeeController extends Controller
{
//
public function index() {
$employee= Employee::all();
//dd($employee);
return response()->json($employee);
}
}

Puedes ver la captura de pantalla anterior, que muestra claramente que sin tener la caché de Laravel en la aplicación, el tiempo necesario para completar la solicitud es de aproximadamente 472 ms.
Pruebas y monitorización de la caché en aplicaciones Laravel
- Ahora, integraremos la caché de Laravel y volveremos a probar la aplicación. Sólo tienes que sustituir el código de la función index().
- Para ello, he seleccionado Caché = Archivo, y como puedes ver, el tiempo que tardan en completarse las peticiones es de unos 284 ms, bastante menos que el último valor.

Integrar Redis en Laravel con Cloudways
- Como Cloudways proporciona la configuración de Redis en 1-clic, es hora de probar la petición con Redis.

- Para integrar Redis en Laravel , primero tienes que ejecutar el comando para instalar predis en tu aplicación Laravel. A continuación, ve al archivo database.php y cambia los ajustes según la configuración de Redis.
- Una vez hecho esto, abre el archivo config/cache.php y cambia conexión => caché por conexión => por defecto.


- También puedes usar memcached en Laravel modificando el archivo .env. Simplemente edita el tipo de archivo Redis a memcached en tu proyecto Laravel y ¡ya está!
También te puede gustar: Aprende a Integrar Memcached en PHP
Integrar Varnish en Laravel con Cloudways
PHP Varnish es una herramienta de proxy inverso HTTP de caché. Básicamente significa que en lugar de un servidor web, Varnish está autorizado a escuchar las peticiones HTTP una vez instalado.
Cuando llega una petición por primera vez, pasa al servidor web como de costumbre. El servidor web, tras completar su trabajo, pasa la petición al Varnish. A continuación, Varnish almacena en caché esa respuesta y la devuelve a los visitantes del sitio web.
Así, la próxima vez que llegue una petición, el Barniz la servirá fácilmente con las respuestas almacenadas anteriormente.
Puedes utilizar este paquete para integrar Varnish en Laravel para mejorar el rendimiento del sitio web.
Cómo activar Varnish en Cloudways
A continuación te explicamos cómo puedes activar o desactivar Varnish en el servidor mediante la Plataforma Cloudways.
- Accede a tu Plataforma Cloudways utilizando tus credenciales.
- En la barra de menú superior, abre Servidores.
- A continuación, elige el servidor que desees.

- En Gestión de Servidores, selecciona Gestionar Servicios.
- A continuación, haz clic en Activar delante de Varnish para activar el servicio. Del mismo modo, puedes desactivar Varnish haciendo clic en Desactivar.

Uso y métodos de la caché de Laravel
Para habilitar los servicios de caché de Laravel, utiliza primero el Illuminate\Contracts\Cache\Factory y el Illuminate\Contracts\Cache\Repository, ya que proporcionan acceso a los servicios de caché de Laravel.
El contrato Fábrica da acceso a todos los controladores de caché de tu aplicación. Por su parte, el contrato Repositorio implementa el controlador de caché por defecto de tu aplicación web.
Laravel Cache tiene diferentes funciones como
- Caché::Poner ()
- Caché::Obtener()
- Caché::Siempre()
- Caché::Tiene()
Almacenar caché
Caché :: Put()i toma tres parámetros claves, valores y tiempo en minutos para almacenar en caché todos los datos de la aplicación. Para hacer pruebas, puedes pegar el siguiente código en tus rutas:
Cache ::put(key, value , 15);
Básicamente, la clave es un identificador único de la caché que puedes utilizar para recuperarla cuando necesites los datos. También puedes utilizar el método remember() para automatizar el proceso de actualización de la caché. Este método comprueba primero la clave, si la encuentra, la devuelve con el resultado verdadero. En caso contrario, crea una nueva clave con el valor. Comprueba el siguiente código.
Cache::remember('articles', 15, function() {
return Article::all();
});
El valor dado, «15», es el número total de minutos que se almacenarán en caché. Usando esto, no tienes que molestarte en comprobar la caché cada vez. En su lugar, Laravel lo hará por ti y recuperará la caché automáticamente cada vez.
Recuperar caché
Si has almacenado tus datos en algún sitio y quieres recuperarlos, puedes utilizar el método Get(). Sólo tienes que copiar y pegar el siguiente código en tu archivo de rutas:
Route::get('/', function()
{
return Cache::get( 'key' );
});
Incrementar / Disminuir valores
Para ajustar los valores de los elementos enteros de la caché, puedes utilizar los métodos incrementar y decrementar. Ambos métodos aceptan un argumento opcional que indica la cantidad incrementada o decrementada.
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
Caché de existencia:: Has()
Si quieres comprobar si la clave existe o no antes de recuperar los datos, utiliza Has() como se define a continuación:
Route::get('/', function()
{
if (Cache::has('key')){
Cache::get('key');
} else {
Cache::put('key', $values, 20);
>;
Eliminar valor de caché
Para borrar la caché de Laravel, simplemente utiliza la función forget() como se muestra a continuación:
Cache::forget('key');
También puedes recuperar un valor de la caché y puedes borrarlo inmediatamente. Técnicamente, puedes llamarlo caché única.
$articles = Cache::pull('key');
Borrar caché de Laravel
También puedes borrar la caché de Laravel incluso antes de que caduque desde la consola usando:
php artisan cache:clear
Borrar caché de rutas
Para borrar la caché de rutas de tu aplicación Laravel, ejecuta el siguiente comando desde el terminal.
php artisan route:cache
Borrar caché de configuración
Para borrar la caché de configuración de tu aplicación Laravel, ejecuta el siguiente comando desde el terminal.
php artisan config:cache
Borrar archivos de vista compilados
Para borrar los archivos de vista compilados de tu aplicación Laravel, ejecuta el siguiente comando desde el terminal.
php artisan view:clear
Caché de base de datos
Cuando utilices el controlador de caché de base de datos de Laravel, tendrás que configurar una tabla para contener los elementos de caché de Laravel. A continuación encontrarás un ejemplo de declaración de esquema para la tabla:
Schema::create('cache', function ($table) {
$table->string('key')->unique();
$table->text('value');
$table->integer('expiration');
});
Buenas prácticas para mantener y actualizar la caché de Laravel
Laravel Cache es una potente herramienta para mejorar el rendimiento de las aplicaciones web. Sin embargo, como cualquier sistema de almacenamiento en caché, requiere un mantenimiento y actualizaciones regulares para garantizar un rendimiento óptimo.
Aquí tienes algunas buenas prácticas para mantener y actualizar la Caché de Laravel:
- Utiliza el controlador de caché adecuado: Laravel proporciona varios controladores de caché, incluyendo archivos, bases de datos, Redis y Memcached. Elige el controlador de caché adecuado en función de las necesidades de tu aplicación y del entorno del servidor. Por ejemplo, Redis y Memcached son los más adecuados para aplicaciones con mucho tráfico, mientras que el controlador de caché de archivo es adecuado para aplicaciones pequeñas.
- Controla el uso de la caché: Supervisa regularmente el uso de la caché para identificar posibles problemas. Utiliza herramientas como Laravel Telescope o Cache Monitor para controlar los aciertos y fallos de la caché, su tamaño y su vida útil.
- Establece una duración adecuada de la caché: Establece una duración adecuada de la caché en función de las necesidades de tu aplicación. Una duración de caché más corta puede ayudar a garantizar que los datos almacenados en caché estén siempre actualizados, pero también puede aumentar la carga del servidor. Una duración mayor de la caché puede reducir la carga del servidor, pero puede hacer que se sirvan datos obsoletos.
- Limpia la caché regularmente: Limpia regularmente la caché para evitar que se haga demasiado grande y para asegurarte de que no se sirven datos obsoletos. Utiliza el comando Artisan integrado en Laravel para limpiar la caché manualmente o configura una tarea cron para limpiar la caché automáticamente.
- Utiliza etiquetas de caché: Utiliza las etiquetas de caché para agrupar los elementos en caché relacionados. Esto te permite borrar fácilmente un grupo de elementos en caché en lugar de borrar toda la caché.
- Actualiza regularmente los paquetes de Laravel y Caché: Mantén tu aplicación Laravel y los paquetes de caché actualizados con los últimos parches de seguridad y correcciones de errores. Esto garantiza que tu aplicación siga siendo segura y tenga un rendimiento óptimo
Lógica de almacenamiento en caché de código, no configuraciones de servidor
Céntrate en la fachada de caché de Laravel mientras nos ocupamos:
✓ Aprovisionamiento del servidor caché
✓ Parches de seguridad
✓ Automatización del vaciado diario de la caché
Palabras finales
En este blog, cubro paso a paso tutorial que explica cómo implementar el almacenamiento en caché en una aplicación web Laravel y mejorar su rendimiento. La caché de Laravel ayuda a mejorar la velocidad de tu sitio web y aumenta enormemente su rendimiento.
Hemos cubierto la integración completa de la caché en Laravel y demostrado cómo utilizar otras herramientas como Laravel memcached, etc.
En general, el blog es una guía completa para los desarrolladores que quieran mejorar el rendimiento de su aplicación web Laravel implementando el almacenamiento en caché.
P: ¿Cómo restablecer la caché de Laravel?
R: Para borrar la caché en las aplicaciones Laravel, abre tu terminal y escribe el siguiente comando:
$ php artisan cache:clear To clear route cache of your Laravel application, execute the following command: $ php artisan route:clear
Del mismo modo, para borrar la caché de configuración de la aplicación Laravel, utiliza el siguiente comando:
$ php artisan config:clear
P: ¿Cómo resolver el error «Laravel failed to clear cache»?
R: Este error suele aparecer cuando la ruta de datos no existe en el directorio storage/framework/cache/data. Para resolver este error, basta con crear manualmente un directorio de datos bajo el directorio storage/framework/cache.
P: ¿Cómo desactivar la caché de Laravel?
R: Para desactivar la caché de Laravel, simplemente utiliza el siguiente comando en tu archivo .env:
CACHE_EXPIRE=-1
P: ¿Cachea Laravel las consultas?
R: Sí, puedes almacenar en caché consultas en Laravel utilizando una llamada a un método encadenado muy sencillo:
$users = DB::table('users')
->orderBy('latest_activity', 'desc')
->take(10)
->remember(60)
->get();
P: ¿Qué es la caché de Laravel?
A) La caché de Laravel es un sistema que almacena datos temporalmente para acelerar el rendimiento de una aplicación reduciendo la necesidad de procesar datos o realizar consultas a bases de datos repetidamente. Laravel proporciona un sistema de caché fácil de usar que admite varios backends como Redis, Memcached y el almacenamiento en caché basado en bases de datos.
P: ¿Laravel tiene caché por defecto?
R) Sí, Laravel almacena datos en caché por defecto. Utiliza el controlador de caché de archivos para almacenar los datos en caché en el directorio storage/framework/cache/data. Puedes configurar Laravel para que utilice diferentes controladores de caché, como Redis o Memcached, en función de tus necesidades, modificando la configuración de CACHE_DRIVER en el archivo .env.
P: ¿Dónde se almacena la caché de Laravel?
A) Laravel almacena su caché en varias ubicaciones dependiendo del controlador de caché configurado en el archivo .env.
- Caché de archivos: Almacenado en storage/framework/cache/data.
- Caché de base de datos: Almacenada en una tabla caché de la base de datos.
- Redis/Memcached: Almacenados en sus respectivos servidores.
Inshal Ali
Inshal es Content Marketer en Cloudways. Con formación en informática, habilidad para los contenidos y mucha creatividad, ayuda a las empresas a alcanzar el cielo e ir más allá a través de contenidos que hablan el idioma de sus clientes. Aparte del trabajo, le verás sobre todo en algún juego en línea o en un campo de fútbol.