ルートに到達するたびに大規模なデータセットの計算を待つのは大変です。そして、ユーザーは待ちたくありません。最近では誰もが保持期間を短くしています。そのため、私たちは何年も前にキャッシュを使用してこの問題を修正しました。 Laravel にはデータのキャッシュに役立つ Cache Fascad があり、有効期限が切れるまでの一定期間データをキャッシュする優れた方法である Cache::remember() を使用しています。
しかし、最近のイベントで、Laravel は、Cache Fascad の「フレキシブル」と呼ばれる新しい機能を発表しました。バックグラウンドでlaravelの新しいdefer()関数を使用します。
Cache::flexible() は、すでによく知られている Cache::remember() に非常に似ており、コードの変更はほとんどありませんが、パフォーマンスに大きな影響を与えます。 Cache::remember() とは異なり、時間に 1 つの値ではなく 2 つの値を指定します。
Cache::flexible() の時間枠として 5 と 10 を渡す場合、ユーザーが最初にルートをヒットまたは訪問したとき、ユーザーは値がキャッシュされるまで待機する必要があり、5 秒以内にルートをヒットし続けるときは、ユーザーは値がキャッシュされるまで待機する必要があります。その後、 Cache::remember() と同じようにキャッシュされた値を返すだけです。しかし、ここが興味深い部分です。ユーザーが(指定したように)5 ~ 10 秒の時間枠内でルートに到達した場合、Laravel は引き続きその時間枠内の最初の訪問に対してキャッシュされた値を提供し、値を再度キャッシュするためにバックグラウンド ワーカーを開始します。そして、ユーザーがルートに再度アクセスすると、更新データを取得しますが、今回は Cache::remember() とは異なり、データがキャッシュされたり計算されたりするのを待つ必要はありません。
これは人によっては理解するのが難しいかもしれません。私が実際の例を交えて詳しく書いたこの記事を読むことをお勧めします: https://laraveleco.com/cache-flexible-method-of-laravel /
以上がLaravel の新しい Cache::flexible()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。