Běžné:
Všechny jsou mezipaměti .
Všechny se používají ke snížení časových nákladů .
Rozdíl:
Konfigurace a trasy:
Patří do aplikace . Říkáme tomu Aplikační mezipaměť .
php artisan config:cache
php artisan route:cache
Tyto dva příkazy ukládají do mezipaměti trasy a konfigurace.
CESTA:
Jsou vždy uloženy v
bootstrap/cache/
Běh
php artisan config:clear
php artisan route:clear
Vymažte pouze adresáře a soubory v bootstrap/cache/
.
Jsou statické . Takže se změní pouze tehdy, když je změníte.
Výhoda
Pokud je změníte, musíte je clear
a cache
ručně.
Po uložení těchto tras a konfigurací.
Laravel nemusí znovu číst konfigurace a trasy ze souboru což si vyžádalo časové náklady IO.
Cache systému souborů a mezipaměť Redis:
Mezipaměť systému souborů a mezipaměť Redis jsou také mezipaměť.
Používají však jiný ovladač ukládat data, znamená kam ukládáte data z mezipaměti .
Filesystem PATH:Pokud používáte ovladač souborového systému. jsou uloženy v
storage/framework/cache/
Reids PATH:Data jsou uložena v
redis
podle páru klíč–hodnota.
Kdy je používáte?
Když jste zjistili, že na tento kód existuje mnoho požadavků na získání dat. A tato data se nemění tak rychle.
K jejich uložení můžete použít mezipaměť a při příštím požadavku na tento api.it stačí vzít data z cache.like níže:
$posts = Cache::remember('index.posts', 30, function()
{return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();});
První požadavek na získání dat příspěvků z databáze a poté uložení těchto dat do mezipaměti (Reids nebo Filesystem) vypršela po 30 sekundách.
Další požadavek získat data příspěvků pouze prostřednictvím mezipaměti. Nepotřebují znovu hledat v databázích.
A tohle:
use Illuminate\Support\Facades\Redis;
Route::get('/', function () {
$visits = Redis::incr('visits');
return $visits;
});
Znamená, když lidé požadují localhost:8000/
, počet návštěv uživatelů se zvyšuje v redis
(není nutné ukládat do databáze, stojí to více času), příště, až bude požadavek na vyhledání počítat návštěv, bude nalezen v redis
velmi rychle.
PS:Zde použijte Redis Facade, pak jsou data uložena v
redis
.Pokud jako ovladač mezipaměti používáte redis,
Cache::remember()
bude také ukládat data do redis.Pomocí Redis Facade však můžete použít mnoho metod redis.
Co je lepší?
Myslím, že redis
je lepší než filesystem
.
-
Protože
redis
ukládat data do paměti a souborový systém ukládat na disk. Čtení dat z paměti je rychlejší než disk. -
Ovládejte data v Redis je snazší než souborový systém. Redis například podporuje vymazání veškeré mezipaměti pro konkrétní značku, ale souborový systém nemůže [Protože souborový systém ukládá data mezipaměti podle názvu šifrovaného klíče].
-
Pro distribuované server, mezipaměť souborového systému je špatný nápad. Nižší poměr mezipaměti.
Upřímně řečeno, lze zvolit i jiné ovladače, například mongodb
.
Mimochodem, moje angličtina není moc dobrá, doufám, že mi rozumíte.