Управление кешем
Чтобы получить экземпляр кеша, будем использовать фасад Cache
, который обеспечивает удобный и краткий доступ к базовым реализациям кеширования Laravel.
Создаем модель:
App/Models/Test.php<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Cache;
class Test extends Model
{
use HasFactory;
static public function getProducts() {
// Если есть валидный ключ key, значит в $rezylt записываем сохраненные данные, по умолчанию если ключа key нет, будет $rezylt будет false
$rezylt = Cache::get("key", false);
// Проверка, если ключа нет
if (!$rezylt) {
// Получаем все данные из базы
$rezylt = Test::all();
// Записываем полученные из базы данные в Redis, метод принимает три параметра: название ключа, то что записываем, время жизни записи в секундах
Cache::set("key", $rezylt, 1000);
}
// Возвращаем результат
return $rezylt;
}
}
Создаем контролер:
App/Http/Controllers/TestController.php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Test;
class TestController extends Controller
{
public function index()
{
$rezylt = Test::getProducts();
foreach ($rezylt as $post) {
dump($post);
}
}
}