Кэширование — это мощный метод, используемый в Laravel для повышения производительности приложений. Однако могут возникнуть ситуации, когда вам потребуется временно или навсегда отключить кэширование запросов. В этой статье мы рассмотрим различные методы отключения кэширования запросов в кэше модели Laravel, а также приведем примеры кода.
Метод 1: используйте метод безCache()
Метод безCache() позволяет обойти кеш запросов для определенного запроса. Вот пример:
$users = User::withoutCache()->get();
Этот метод гарантирует, что запрос выполняется непосредственно к базе данных без использования кеша.
Метод 2: глобальное отключение кеширования
Чтобы глобально отключить кеширование для всех запросов, вы можете изменить файл config/cache.php
. Найдите значение 'default'
и измените его на 'null'
, как показано ниже:
'default' => env('CACHE_DRIVER', 'null'),
Это изменение конфигурации фактически отключит кэширование для всех запросов в вашем приложении Laravel.
Метод 3. Используйте метод забывания кэша.
Если вы хотите отключить кеширование для определенного запроса без изменения глобальных настроек кэша, вы можете использовать метод забывания кэша. Вот пример:
$user = Cache::forget('users')->remember('users', $expiration, function () {
return User::get();
});
В этом примере оператор Cache::forget('users')
удаляет кэшированные данные для ключа «пользователи», заставляя последующий запрос User::get()
получать свежие данные из базы данных.
Метод 4. Использование метода fromQuery()
построителя запросов
Метод fromQuery()
позволяет выполнять необработанные запросы SQL с помощью построителя запросов без кэширования. Вот пример:
$users = DB::query()->fromQuery('SELECT * FROM users');
Используя этот метод, вы можете отключить кеширование и получать результаты запроса непосредственно из базы данных.
Отключение кэширования запросов в Laravel Model Cache может быть полезно в определенных сценариях, когда требуются данные в реальном времени, или при устранении неполадок, связанных с кэшированием. В этой статье мы рассмотрели несколько методов достижения этой цели, в том числе использование метода withoutCache()
, глобальное отключение кэширования, использование забывания кэша и использование метода fromQuery()
. Понимание этих методов поможет вам эффективно оптимизировать производительность ваших приложений Laravel.