Laravelのキャッシュ方法について

不言
リリース: 2023-04-01 06:46:02
オリジナル
1725 人が閲覧しました

この記事では、Laravel での便利なキャッシュ方法の共有に関する関連情報を主に紹介します。必要な方は参考にしてください。

Laravel が提供するキャッシュ ツールは、基本的な使い方をいくつか紹介しています。 get、put、forget、forever など。最初は次のように使用しました。

if (!$article = Cache::get('article_1')) {
    $article = Article::find(1);
    Cache::forever('article_1',$article);
}
ログイン後にコピー

これは、キャッシュが存在するかどうかを自動的に判断します。データベースから取得されます。

後で、このモデルには remember メソッドと rememberForever メソッドも付属していることがわかりました。たとえば、次のようになります。

$article = Article::rememberForever('article_1')->where('id','=',1);
ログイン後にコピー

これには制限があり、複雑なクエリ中にデータを完全にキャッシュすることはできません。たとえば、with() を使用して事前設定します。 関連データのロード中は、関連データをキャッシュできません。

その後、Cache が Response などのマクロ メソッドをカスタマイズできることを発見したので、次のことを試してみました:

//注册缓存存取宏
Cache::macro('want',function($key,$minutes=0,$callback){
    if (!$data = Cache::get($key)) {
        $data = call_user_func($callback);
        if ($minutes == 0) {
            Cache::forever($key,$data);
        } else {
            Cache::put($key,$data,$minutes);
        }
    }
    return $data;
});
ログイン後にコピー

このメソッドは、bootstrap/start.php またはアプリ内フィルターに配置できます。 :before() 、自分のプロジェクトに便利です。使い方を見てみましょう:

$id = Input::get('id');
$article = Cache::want('article_'.$id,0,function() use ($id){
    return Article::with('tags')->findOrFail($id,['id','cid','title','content_html as content','created_at','updated_at']);
});
ログイン後にコピー

私は個人的にこの書き方が好きです。皆さんがこの記事の内容を気に入っていただければ幸いです。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Laravel Redis 同時にキューを取得する複数のプロセスの問題分析

データ移行とLaravel でのデータ充填分析の開発

#

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート