ホームページ  >  記事  >  PHPフレームワーク  >  Laravelでキャッシュを更新する方法について話し合う

Laravelでキャッシュを更新する方法について話し合う

PHPz
PHPzオリジナル
2023-04-11 15:07:38904ブラウズ

Laravel は、キャッシュを使用してアプリケーションのパフォーマンスと応答性を向上させる、非常に人気のある PHP フレームワークです。キャッシュによりデータベースやその他の外部リソースの負荷が効果的に軽減され、アプリケーションの応答速度が向上します。ただし、データを変更する場合はキャッシュを更新する必要があり、更新しないと最新のデータを取得できません。この記事では、Laravel でキャッシュを更新する方法について説明します。

  1. Laravel キャッシュについて理解する

Laravel では、ファイル キャッシュ、データベース キャッシュ、Redis キャッシュなど、さまざまなキャッシュ方法を使用できます。これらのキャッシュ方法はすべて異なる特徴と機能を持っていますが、すべて同じ基本的なキャッシュ原則に従います。 Laravel では、Cache ファサード クラスを使用してキャッシュにアクセスできます。

Laravel では、キャッシュは通常、読み取りキャッシュと書き込みキャッシュの 2 つのステップで構成されます。キャッシュから読み取るとき、Laravel はキャッシュ内のデータを探します。データが存在する場合はキャッシュ内のデータが直接返され、存在しない場合はデータ ソースからデータが取得されてキャッシュに保存されます。キャッシュに書き込むと、Laravel はデータをキャッシュに保存します。データがすでにキャッシュに存在する場合、元のデータは上書きされます。それ以外の場合、Laravel は新しいキャッシュ レコードを作成します。

  1. キャッシュを更新する方法

Laravel では、Cache ファサード クラスによって提供される put() メソッドを使用して、キャッシュされたデータを書き込むことができます。データを 2 番目として指定します。パラメータを put() メソッドに渡すだけです。キャッシュされたデータを更新する必要がある場合は、put() メソッドを使用して元のキャッシュされたデータを上書きし、キャッシュ内のデータが最新のデータであることを確認できます。

以下はサンプル コードです:

$user = User::find(1);
Cache::put('user:1', $user, 60);

上記のコードは、$user オブジェクトをキー「user:1」でキャッシュにキャッシュし、キャッシュ時間を 60 秒に設定します。キャッシュされたデータを更新する必要がある場合は、put() メソッドを再度使用して、以前のキャッシュされたデータを上書きできます。

$user->name = 'New Name';
Cache::put('user:1', $user, 60);

上記のコードは、$user オブジェクトの name 属性を更新し、更新された $user オブジェクトをキャッシュに書き込み、以前にキャッシュされたデータを上書きします。この時点で、最新の $user オブジェクト データをキャッシュから取得できます。

  1. 自動キャッシュ更新

実際のアプリケーションでは、データベース内のデータが更新されたときに、対応するキャッシュされたデータを自動的に更新する必要がある場合があります。 Laravel は、キャッシュ タグを使用してデータベース モデル内のキャッシュを管理する便利な方法を提供します。

キャッシュ タグは、複数のキャッシュされたデータを結合する方法であり、データ モデル内で複数の関連データを同時にキャッシュするために使用できます。モデル データを更新するときは、キャッシュ タグを使用して、そのモデルに関連するすべてのキャッシュ データを更新できます。

以下はサンプル コードです:

class User extends Model
{
    protected $fillable = ['name', 'email'];
    protected $cacheKey = 'users';

    public function getByID($id)
    {
        $cacheKey = $this->cacheKey . '.' . $id;
        return Cache::tags([$this->cacheKey])->remember($cacheKey, 60, function() use($id) {
            return User::find($id);
        });
    }

    protected static function boot()
    {
        parent::boot();

        static::saved(function($user) {
            Cache::tags($user->cacheKey)->flush();
        });

        static::deleted(function($user) {
            Cache::tags($user->cacheKey)->flush();
        });
    }
}

上記のコードはキャッシュ タグを使用してユーザー モデルのキャッシュ データを管理します。これは、キャッシュ タグのプレフィックスを設定するために使用される $cacheKey 属性を定義します。また、キャッシュ タグを使用して指定された ID のユーザー データを取得する getByID() メソッドもオーバーライドします。ユーザーデータが作成、更新、または削除されると、Laravel はユーザーのキャッシュデータを自動的にクリアして、キャッシュデータがデータベースデータと同期していることを確認します。

概要

Laravel のキャッシュの更新は、アプリケーションのパフォーマンスと応答性を向上させることができる非常に重要なタスクです。 Cache Facade クラスが提供する put() メソッドを使用して、キャッシュ データを書き込みまたは上書きできます。データベースのデータが更新されると、キャッシュ タグを使用して、対応するキャッシュ データを自動的に更新できます。この記事が少しでも役に立ち、Laravel でのキャッシュ管理についての理解を深めることができれば幸いです。

以上がLaravelでキャッシュを更新する方法について話し合うの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。