Отключение кэширования запросов в кэше модели Laravel: методы и примеры кода

Кэширование — это мощный метод, используемый в 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.