PR
更新:2025/02/28

Laravelのキャッシュの仕組みと主要な活用法を詳しく解説

はるか
はるか
キャッシュって、データの保存場所を一時的に確保する仕組み。
ふゅか
ふゅか
そうそう!Laravelのキャッシュを使うと、データベースのクエリ結果とかを保存して、次回のアクセスを速くできるの!

1. はじめに

Laravelのキャッシュ機能を利用すると、データベースのクエリ結果や計算結果を一時的に保存し、後で素早く取得できるようになります。これにより、アプリケーションのパフォーマンスを大幅に向上させることができます。

本記事では、Laravel10のキャッシュの基本的な使い方や、実際のプロジェクトで活用するためのポイントを詳しく解説します。

2. Laravelのキャッシュとは?

キャッシュとは、一度取得したデータを一定期間保存し、同じデータを再取得する際に高速にアクセスできる仕組みです。

Laravelでは、以下のようなデータをキャッシュできます。

  • データベースのクエリ結果
  • 計算結果
  • APIレスポンス
  • ルート情報
  • 設定ファイル

キャッシュを適切に活用することで、リクエストの処理速度を向上させ、サーバー負荷を軽減することが可能です。

3. キャッシュの設定

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

Laravelでは、キャッシュを保存する場所(ストレージ)を選択できます。.envファイルでCACHE_DRIVERを設定することで、使用するキャッシュドライバを変更できます。

CACHE_DRIVER=file

3.2. 利用可能なキャッシュドライバの例

キャッシュドライバ 説明
file ファイルシステムに保存(デフォルト)
database データベースに保存
redis Redisを使用
memcached Memcachedを使用

4. キャッシュの基本操作

4.1. キャッシュの保存

キャッシュにデータを保存するには、Cache::put()メソッドを使用します。

use Illuminate\Support\Facades\Cache;

// キャッシュにデータを保存(60秒間有効)
Cache::put('key', 'value', 60);

  • 'key':キャッシュのキー(識別名)
  • 'value':保存する値
  • 60:保存時間(秒単位)

4.2. キャッシュの取得

キャッシュからデータを取得するには、get()メソッドを使用します。

$value = Cache::get('key');

if ($value) {
    echo "キャッシュの値:" . $value;
} else {
    echo "キャッシュにデータがありません";
}

キャッシュが存在しない場合はnullが返ります。

5. キャッシュの有効活用

5.1. キャッシュがなければ保存して取得(remember)

データがキャッシュにない場合のみ、値を計算して保存するには、remember()メソッドを使用します。

$value = Cache::remember('key', 60, function () {
    return '新しく計算されたデータ';
});

この方法を使うと、キャッシュが存在する場合はデータを直接取得し、ない場合のみ処理が実行されます。

5.2. キャッシュの削除

キャッシュを削除するには、forget()メソッドを使用します。

Cache::forget('key');

全てのキャッシュを削除するには、flush()メソッドを使用します。(注意:すべてのキャッシュが消えるので慎重に)

Cache::flush();

5.3. キャッシュの存在確認

キャッシュにデータが存在するかを確認するには、has()メソッドを使用します。

if (Cache::has('key')) {
    echo "キャッシュが存在します";
} else {
    echo "キャッシュがありません";
}

6. 期限を指定しないキャッシュ

期限を設定せずにデータを保存するには、forever()メソッドを使用します。

Cache::forever('key', '永続データ');

7. キャッシュの管理(Artisanコマンド)

Laravelでは、キャッシュを管理するためのコマンドが用意されています。

7.1. キャッシュのクリア

全キャッシュを削除するには、以下のコマンドを実行します。

php artisan cache:clear

7.2. 設定キャッシュのクリア

php artisan config:clear

設定キャッシュを削除し、.envファイルの変更を反映させる際に使用します。

7.3. ルートキャッシュのクリア

php artisan route:clear

ルートキャッシュを削除します。

7.4. ビューキャッシュのクリア

php artisan view:clear

Bladeテンプレートのキャッシュを削除します。

PR