- Опубликовано: 5 дек 2024
- 459
Кэширование в Laravel
Кэширование в Laravel — мощный инструмент, позволяющий ускорить работу приложений, уменьшить нагрузку на базу данных и повысить производительность. Laravel предоставляет несколько способов и драйверов для работы с кэшем.
Основные команды для кэша
Laravel поддерживает Artisan-команды для управления кэшем:
- Очистка кэша приложения:
php artisan cache:clearУдаляет все записи в текущем драйвере кэша. - Очистка маршрутов:
php artisan route:clear - Очистка скомпилированных представлений:
php artisan view:clear - Очистка конфигурации:
php artisan config:clear - Очистка кэша событий:
php artisan event:clear - Сброс всех кэшированных данных (кроме файлов):
php artisan optimize:clear
Использование кэша в коде
Установка значения в кэш:
Cache::put('key', 'value', $seconds);
Пример:
Cache::put('user_name', 'John', 3600); // Данные сохраняются на 1 час
Получение значения из кэша:
$value = Cache::get('key', 'default_value');
Пример:
$userName = Cache::get('user_name', 'Guest');
Проверка существования ключа:
if (Cache::has('key')) {
// Ключ существует
}
Удаление значения:
Cache::forget('key');
Работа с замыканиями
Для упрощения загрузки данных, если они отсутствуют в кэше, используется метод remember:
$value = Cache::remember('key', $seconds, function () {
return DB::table('users')->get();
});
Метод rememberForever сохраняет данные навсегда:
$value = Cache::rememberForever('key', function () {
return 'Permanent value';
});
Драйверы кэша
Laravel поддерживает несколько драйверов для кэширования:
- file: Кэш хранится в файловой системе (по умолчанию). Подходит для небольших приложений.
- database: Хранение в базе данных. Нужно создать таблицу кэша командой:
php artisan cache:table php artisan migrate - redis: Использует Redis. Рекомендуется для высоконагруженных приложений.
- memcached: Для приложений с требованием высокой скорости.
- array: Хранение в массиве. Полезно для тестирования.
Настройка драйвера кэша
В файле config/cache.php можно задать используемый драйвер:
'default' => env('CACHE_DRIVER', 'file'),
Пример смены драйвера на Redis:
CACHE_DRIVER=redis
Очистка кэша на определённом драйвере
Для работы с конкретным драйвером:
Cache::store('redis')->clear();
Была статья полезной: