Vaak:
Ze zijn allemaal in de cache .
Ze worden allemaal gebruikt om tijdkosten te verlagen .
Differenet:
Configuraties en routes:
Het hoort bij applicatie . We noemen het Applicatiecache .
php artisan config:cache
php artisan route:cache
Deze twee commando's cachen routes en configuraties.
PAD:
Ze worden altijd opgeslagen in
bootstrap/cache/
Hardlopen
php artisan config:clear
php artisan route:clear
Wis alleen de mappen en bestanden in bootstrap/cache/
.
Ze zijn statisch . Ze worden dus alleen gewijzigd als u ze wijzigt.
Voordeel
Als u ze wijzigt, moet u clear
en cache
ze handmatig.
Nadat u deze routes en configuraties heeft gecacht.
Laravel hoeft de configuraties en routes uit het bestand niet opnieuw te lezen wat IO-tijd kostte.
Bestandssysteemcache en Redis-cache:
Bestandssysteemcache en Redis-cache zijn beide ook cache.
Ze gebruiken echter andere driver om de gegevens op te slaan, betekent waar u de cachegegevens opslaat .
Bestandssysteem PATH:Als u een bestandssysteemstuurprogramma gebruikt. ze worden opgeslagen in
storage/framework/cache/
Reids PATH:Gegevensopslag in
redis
op sleutelwaarde.
Wanneer gebruik je ze?
Toen je ontdekte dat er veel verzoeken om deze code zijn voor het verkrijgen van gegevens. En deze gegevens worden niet zo snel gewijzigd.
Je kunt de cache gebruiken om ze op te slaan, en dan, de volgende keer dat een ander verzoek aan deze api.it wordt gedaan, neem je gewoon gegevens uit de cache.zoals hieronder:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
Het eerste verzoek haalt de gegevens van de berichten uit de database en slaat deze gegevens vervolgens op in de cache (Reids of bestandssysteem) die na 30 seconden is verlopen.
Volgende verzoek ontvang de gegevens van berichten alleen via de cache. Ze hoeven niet opnieuw in databases te zoeken.
En deze:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
Betekent wanneer mensen localhost:8000/
. aanvragen , aantal bezoeken van gebruikers neemt toe in redis
(hoeft niet in de database op te slaan, het kost meer tijd), de volgende keer, wanneer het verzoek om te zoeken bezoeken telt, is het te vinden in redis
heel snel.
PS:Gebruik hier Redis Facade, dan worden de gegevens opgeslagen in
redis
.Als u redis als cachestuurprogramma gebruikt,
Cache::remember()
zal gegevens ook in redis opslaan.Als u Redis Facade gebruikt, kunt u echter veel redis-methoden gebruiken.
Wat is beter?
Ik denk redis
is beter dan filesystem
.
-
Omdat
redis
sla gegevens op in het geheugen en bewaar het bestandssysteem op schijf. Gegevens uit het geheugen lezen is sneller dan schijf. -
Bedienen gegevens in Redis is gemakkelijker dan Bestandssysteem. Redis ondersteunt bijvoorbeeld het wissen van alle cache voor een specifieke tag, maar het bestandssysteem kan dat niet [Omdat het bestandssysteem cachegegevens opslaat met de naam van de versleutelde sleutel].
-
Voor verdeeld server, bestandssysteemcache is een slecht idee. Lagere cache-hitratio.
Eerlijk gezegd zijn er andere stuurprogramma's die kunnen worden gekozen, zoals mongodb
.
Trouwens, mijn Engels is niet zo goed, ik hoop dat je het begrijpt.