Laravel逆引きTips – Cache

Laravel Laravel

Laravel逆引きTIps一覧へ戻る

基本的なキャッシュの使用

// キャッシュに値を保存
Cache::put('key', 'value', $seconds);

// キャッシュから値を取得
$value = Cache::get('key');

// キャッシュに値が存在しない場合にデフォルト値を返す
$value = Cache::get('key', 'default');

// キャッシュに値が存在しない場合にクロージャを実行
$value = Cache::remember('key', $seconds, function () {
    return DB::table('users')->get();
});
PHP

キャッシュドライバーの設定

config/cache.php
return [
    'default' => env('CACHE_DRIVER', 'file'),
    'stores' => [
        'file' => [
            'driver' => 'file',
            'path' => storage_path('framework/cache/data'),
        ],
        'redis' => [
            'driver' => 'redis',
            'connection' => 'cache',
        ],
    ],
];
PHP
// 特定のストアを使用
Cache::store('redis')->put('key', 'value', $seconds);
PHP

タグ付きキャッシュ

Cache::tags(['people', 'artists'])->put('John', $john, $seconds);
Cache::tags(['people', 'authors'])->put('Anne', $anne, $seconds);

$john = Cache::tags(['people', 'artists'])->get('John');

// タグでグループ化されたキャッシュをフラッシュ
Cache::tags(['people', 'authors'])->flush();
PHP

キャッシュのクリアとフラッシュ

// 特定のキーを削除
Cache::forget('key');

// すべてのキャッシュをクリア
Cache::flush();
PHP

レスポンスのキャッシュ

use Illuminate\Support\Facades\Response;

$content = Cache::remember('home', $seconds, function () {
    return view('home')->render();
});

return Response::make($content)->header('Content-Type', 'text/html');
PHP

データベースクエリのキャッシュ

$users = Cache::remember('users', $seconds, function () {
    return DB::table('users')->get();
});

// クエリビルダでのキャッシュ
$users = DB::table('users')->remember($seconds)->get();

// Eloquentでのキャッシュ
$users = User::remember($seconds)->get();
PHP

Laravel逆引きTIps一覧へ戻る

Follow me!

コメント

PAGE TOP
タイトルとURLをコピーしました