Comum:
Eles são todos em cache .
Todos eles são usados para reduzir o custo do tempo .
Diferença:
Configurações e rotas:
Pertence ao aplicativo . Nós o chamamos de Cache de Aplicativo .
php artisan config:cache
php artisan route:cache
Esses dois comandos estão armazenando em cache rotas e configurações.
CAMINHO:
Eles são sempre armazenados embootstrap/cache/
Encontro
php artisan config:clear
php artisan route:clear
Limpe apenas os diretórios e arquivos em
bootstrap/cache/
. Eles são estáticos . Portanto, eles só são alterados quando você os altera.
Benefício
Se você alterá-los, você precisa
clear
e cache
-los manualmente. Depois de cahce essas rotas e configurações.
Laravel não precisa ler as configurações e rotas do arquivo novamente que levou o custo de tempo de IO.
Cache do sistema de arquivos e cache do Redis:
O cache do sistema de arquivos e o cache do Redis também são cache.
No entanto, eles usam drivers diferentes para armazenar os dados, significa onde você armazena os dados de cache .
Filesystem PATH:Se você estiver usando o driver do sistema de arquivos. eles são armazenados emstorage/framework/cache/
Reids PATH:armazenamento de dados emredis
por valor-chave.
Quando você os usa?
Quando você descobriu que existem muitos pedidos para este código para obter dados. E esses dados não são alterados tão rápido.
Você pode usar o cache para armazená-los e, na próxima vez, outra solicitação para esta api.it apenas pegue os dados do cache.como abaixo:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
A primeira solicitação obtém os dados das postagens do banco de dados e, em seguida, armazena esses dados em cache (Reids ou Filesystem) expirados após 30 segundos.
A próxima solicitação obtém os dados das postagens apenas por meio do cache. Eles não precisam pesquisar em bancos de dados novamente.
E este:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
Significa quando as pessoas solicitam
localhost:8000/
, contagem de visitas dos usuários aumentando em redis
(não precisa armazenar em banco de dados, custa mais tempo), na próxima vez, quando solicitar a contagem de visitas de pesquisa, ela pode ser encontrada em redis
muito rapidamente.
PS:Aqui use Redis Facade, então os dados são armazenados emredis
.
Se você estiver usando redis como driver de cache,Cache::remember()
armazenará dados em redis também.
No entanto, usando o Redis Facade, você pode usar muitos métodos redis.
Qual é melhor?
Acho que
redis
é melhor que filesystem
. -
Porqueredis
armazenar dados na memória e armazenamento do sistema de arquivos no disco. Ler dados da memória é mais rápido do que disco.
-
Operar datas no Redis é mais fácil do que o sistema de arquivos. Por exemplo, o Redis suporta limpar todo o cache para uma tag específica, mas o sistema de arquivos não pode [Porque o sistema de arquivos armazena dados de cache pelo nome da chave criptografada].
-
Para distribuídos servidor, o cache do sistema de arquivos é uma má ideia. Taxa de acertos de cache mais baixa.
Honestamente, existem outros drivers que podem ser escolhidos, como
mongodb
. A propósito, meu inglês não é muito bom, espero que você entenda.