Cache
El sistema de cache de Laravel ofrece una API unificada para varios backends de almacenamiento, permitiendo mejorar drasticamente el rendimiento de la aplicacion.
Operaciones basicas
use Illuminate\Support\Facades\Cache;
// Guardar en cache
Cache::put('key', 'value', now()->addHours(1));
Cache::forever('config', $config);
// Obtener del cache
$value = Cache::get('key', 'default');
// Obtener o calcular (patron mas comun)
$posts = Cache::remember('popular_posts', 3600, function () {
return Post::popular()->with('author')->limit(10)->get();
});
// Verificar y eliminar
if (Cache::has('key')) { /* ... */ }
Cache::forget('key');
Cache::flush(); // Borrar todo el cache
Cache tags (solo Redis/Memcached)
Cache::tags(['posts', 'author:1'])->put('post:1', $post, 3600);
Cache::tags(['posts'])->flush(); // Borrar solo posts
Atomic Locks
$lock = Cache::lock('processing-order', 10);
if ($lock->get()) {
try {
// Proceso exclusivo
} finally {
$lock->release();
}
}
En produccion, Redis es el driver recomendado por su velocidad y soporte para tags y locks atomicos. La cache es crucial para reducir consultas a la base de datos y llamadas a APIs externas.