共通:
それらはすべてのキャッシュです 。
これらはすべて、時間コストの削減に使用されます。 。
相違点:
構成とルート:
アプリケーションに属しています 。これをアプリケーションキャッシュと呼びます 。
php artisan config:cache
php artisan route:cache
これらの2つのコマンドは、ルートと構成のキャッシュです。
パス:
それらは常に
bootstrap/cache/
に保存されます
実行中
php artisan config:clear
php artisan route:clear
bootstrap/cache/
内のディレクトリとファイルのみをクリアします 。
それらは静的です 。したがって、変更した場合にのみ変更されます。
メリット
それらを変更する場合は、clear
する必要があります およびcache
手動で。
これらのルートと構成を確認した後。
Laravelはファイルから構成とルートを再度読み取る必要はありません IOの時間コストがかかりました。
ファイルシステムキャッシュとRedisキャッシュ:
ファイルシステムキャッシュとRedisキャッシュはどちらもキャッシュです。
ただし、別のドライバーを使用します データを保存するということは、キャッシュデータを保存する場所を意味します 。
ファイルシステムパス:ファイルシステムドライバーを使用している場合。それらは
storage/framework/cache/
に保存されますReids PATH:データは
redis
に保存されます キー値による。
いつ使用しますか?
データを取得するためにこのコードに多くのリクエストがあることに気付いたとき。そして、これらのデータはそれほど速く変更されません。
キャッシュを使用してそれらを保存し、次にこのapi.itへの別のリクエストが、以下のようにキャッシュからデータを取得することができます。
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
最初のリクエストは、データベースから投稿のデータを取得し、これらのデータを30秒後に期限切れになったキャッシュ(ReidsまたはFilesystem)に保存します。
次のリクエストは、キャッシュを介してのみ投稿のデータを取得します。データベースを再度検索する必要はありません。
そしてこれ:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
人々がlocalhost:8000/
をリクエストするときの意味 、redis
でユーザーの訪問数が増加 (データベースに保存する必要はありません。時間がかかります)、次回、訪問数の検索をリクエストすると、redis
に表示されます。 非常に迅速に。
PS:ここではRedis Facadeを使用すると、データは
redis
に保存されます 。キャッシュドライバーとしてredisを使用している場合は、
Cache::remember()
データもredisに保存されます。ただし、Redisファサードを使用すると、多くのRedisメソッドを使用できます。
どちらが良いですか?
redis
だと思います filesystem
よりも優れています 。
-
redis
データをメモリに保存し、ファイルシステムをディスクに保存します。メモリからのデータの読み取りは高速 ディスクより。 -
操作 Redisのデータは簡単です ファイルシステムより。たとえば、Redisは特定のタグのすべてのキャッシュをクリアすることをサポートしていますが、ファイルシステムは[ファイルシステムが暗号化されたキーの名前でキャッシュデータを保存するため]できません。
-
分散の場合 サーバー、ファイルシステムキャッシュは悪い考えです。キャッシュヒット率が低くなります。
正直なところ、mongodb
のように、他のドライバーを選択することもできます。 。
ちなみに、私の英語はあまり上手ではありません。ご理解いただければ幸いです。