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é
redis
archivia 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.