Єдиний API поверх драйверів для зберігання результатів важких обчислень чи запитів. Драйвери: database (за замовчуванням у нових застосунках), file, redis, memcached, dynamodb, array (для тестів). Задається через CACHE_STORE у .env.
remember - найпоширеніший патерн (дістати з кешу або обчислити й закешувати):
$users = Cache::remember('active_users', 3600, function () {
return User::where('active', true)->get();
});
Cache::put('key', $value, now()->addMinutes(10));
$value = Cache::get('key', 'default');
Cache::forget('key');
Теговане кешування (лише Redis/Memcached) - для групового скидання:
Cache::tags(['posts'])->put('post.1', $post, 600);
Cache::tags(['posts'])->flush(); // скинути всю групу
Атомарні блокування проти гонок (один процес у критичній секції):
Cache::lock('processing', 10)->get(function () {
// критична секція
});
Найскладніше - інвалідація: кеш скидають у подіях/обзерверах моделей при зміні даних. Застарілий кеш часто гірший за його відсутність.