Comune:
Sono tutti cache .
Sono tutti utilizzati per ridurre il costo del tempo .
Differente:
Configurazioni e percorsi:
Appartiene a applicazione . Lo chiamiamo Application Cache .
php artisan config:cache
php artisan route:cache
Questi due comandi memorizzano nella cache percorsi e configurazioni.
PERCORSO:
Sono sempre archiviati in bootstrap/cache/
In esecuzione
php artisan config:clear
php artisan route:clear
Cancella solo le directory e i file in bootstrap/cache/ .
Sono statici . Quindi vengono modificati solo quando li modifichi.
Vantaggio
Se li modifichi, devi clear e cache manualmente.
Dopo aver memorizzato questi percorsi e configurazioni.
Laravel non ha bisogno di leggere nuovamente le configurazioni e le rotte dal file che ha richiesto un costo di tempo IO.
Cache del filesystem e cache Redis:
Anche la cache del filesystem e la cache Redis sono entrambe cache.
Tuttavia, utilizzano driver diversi memorizzare i dati, significa dove memorizzi i dati di memorizzazione nella cache .
PERCORSO del filesystem:se si utilizza il driver del filesystem. sono memorizzati in storage/framework/cache/
Reids PATH:Memorizzazione dei dati in redis per valore-chiave.
Quando li usi?
Quando hai scoperto che ci sono molte richieste a questo codice per ottenere dati. E questi dati non vengono modificati così velocemente.
Puoi usare la cache per archiviarli, e poi, la prossima volta che un'altra richiesta a questo api.it prendi semplicemente i dati dalla cache.come di seguito:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
La prima richiesta ottiene i dati dei post dal database, quindi memorizza questi dati nella cache (Reids o Filesystem) scaduti dopo 30 sec.
La prossima richiesta ottiene i dati dei post solo tramite la cache. Non hanno bisogno di cercare nuovamente nei database.
E questo:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
Significa quando le persone richiedono localhost:8000/ , il conteggio delle visite degli utenti aumenta in redis (non è necessario archiviare nel database, costa più tempo), la prossima volta, quando la richiesta di ricerca del conteggio delle visite, può essere trovata in redis molto velocemente.
PS:qui usa Redis Facade, quindi i dati vengono archiviati in redis .
Se stai usando redis come driver della cache, Cache::remember() memorizzerà anche i dati in redis.
Tuttavia, utilizzando Redis Facade, puoi utilizzare molti metodi redis.
Quale è meglio?
Penso redis è migliore di filesystem .
-
Perché
redisarchivia i dati in memoria e il filesystem archivia su disco. La lettura dei dati dalla memoria è più veloce rispetto al disco. -
Operare datas in Redis è più facile rispetto a Filesystem. Ad esempio, il supporto Redis cancella tutta la cache per un tag specifico, ma il filesystem non può[Perché il filesystem memorizza i dati della cache in base al nome della chiave crittografata].
-
Per distribuito server, la cache del filesystem è una cattiva idea. Minore percentuale di riscontro nella cache.
Onestamente, ci sono altri driver che possono essere scelti, come mongodb .
A proposito, il mio inglese non è molto buono, spero che tu capisca.