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一覧へ戻る

著者

Webエンジニア歴30年、フリーランスバックエンドエンジニア。

PHP歴約30年(Laravel 7年・FuelPHP 5年・CakePHP・自作FW)、
JavaScript歴約20年(React・Vue各4年)。
AWS(EC2 / CloudFront / RDS / API Gateway など)・
GCP(BigQuery)を使ったバックエンド開発を中心に、
複数の事業会社・受託案件でシステム設計から実装・運用まで担当しています。

PHPがバージョン4の時代から書いており、
Laravelが普及する前のフレームワーク乱立期も経験しています。
「昔はこう書いていたが今はこう」という変遷を肌で知っているエンジニアとして、
単なるコマンドの使い方だけでなく、なぜそうするのかの背景まで伝えることを意識して書いています。

このブログでは、実務で実際に詰まった箇所・調べたこと・気づいたことを
そのまま記事にしています。誰かの「詰まり」が解決するきっかけになれば幸いです。

千原 耕司をフォローする

役にたったと思ったら応援をお願いします m(._.)m

Laravel
スポンサーリンク
シェアする
千原 耕司をフォローする
タイトルとURLをコピーしました