РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplrSpChRm 167 of 210 menu

Метод remember кэша в Laravel

Частый сценарий: взять данные из кэша, а если ключа нет - выполнить тяжёлую работу, положить результат в кэш и вернуть его. Вручную это has + get + put. Короче и яснее - один вызов Cache::remember.

<?php use Illuminate\Support\Facades\Cache; use App\Models\Post; $posts = Cache::remember('posts.all', 60, function () { return Post::all(); }); ?>

Первый аргумент - ключ, второй - время жизни в секундах, третий - замыкание. Если ключ уже есть, замыкание не вызывается: Laravel сразу отдаёт значение из кэша. Если ключа нет - выполняется замыкание, его результат пишется в кэш на указанный срок и возвращается вам.

Так список постов из базы считают не чаще раза в минуту (в примере 60 секунд). Остальные запросы в этот интервал берут уже сохранённый результат. Нагрузка на базу падает, страница отвечает быстрее.

Когда данные в базе изменились, устаревший ключ нужно сбросить отдельно (метод forget в следующем уроке). Иначе до конца срока remember будет отдавать старый снимок.

Закэшируйте список категорий на 5 минут через remember.

Когда вызывается замыкание в remember, а когда нет?

Закэшируйте настройки сайта под ключом settings.all на 300 секунд.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить