Roshette
@Roshette
So love fucking laravel

Как кешировать данные из БД каждые 15 минут?

Доброго дня!
Берётся большое количество данных из БД для построения графика, но данные меняются только каждые 15 минут. Как сделать так, что бы данные были закешированы и уже не ждать выборки а сразу отдавать пользователю из кэша?
Есть ли какие-то инструменты у Laravel?
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
ubukulov
@ubukulov
Веб-разработчик
В документации все написано.

Например.

$result = DB::select("SELECT * FROM goods"); // пример запроса

if(!Cache::has('goods')){
       // если в кэше нет то сохраняем в кэш
      Cache::put('goods', $result, 15); // на 15 минут сохраняем в кэш
      $goods = Cache::get('goods'); // получаем из кэша
}else{
       // получаем из кэша
      $goods = Cache::get('goods'); // получаем из кэша
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@lavren
Нет нужды делать лишние проверки. Если кэша нет то он его создает.. примерно так.
$value = Cache::get('cacheId', function () {
    $data = Model::all();
    Cache::put('cacheId', $data, 15);
    return $data;
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы