Predpomnjenje
storh vključuje majhna zaledja za predpomnjenje in nima odvisnosti med izvajanjem:
use Storh\Cache;
use Storh\CacheValidation;
$docs = new Storh\DocStore($root, 'pages', cache: Cache::memory(maxEntries: 10000));
$docs = new Storh\DocStore($root, 'pages', cache: Cache::apcu('storh.pages'));
$docs = new Storh\DocStore(
$root,
'pages',
cache: Cache::memory(maxEntries: 100000, maxBytes: 96 * 1024 * 1024),
cache_validation: CacheValidation::TRUST
);
Plasti predpomnilnika:
- dekodirani zapisi DocStore
- negativni zadetki pri iskanju manjkajočih zapisov
- manifesti segmentiranega dnevnika
- redki indeksi segmentov
Načini preverjanja:
CacheValidation::STAT: preveri obstoj, mtime in velikost.CacheValidation::HASH: preveri obstoj, mtime, velikost in zgoščeno vrednost vsebine.CacheValidation::TRUST: pri zadetkih preskoči preverjanje datotečnega sistema in zaupa trenutnemu primerku storh ali skupnemu zaledju predpomnilnika, da objavlja izrecne zapise storh.
STAT je privzeti hitri način preverjanja. Uporabite HASH, kadar mora vsak zadetek v predpomnilniku preveriti tudi vsebino datoteke, vključno z zapisi enake velikosti, pri katerih se mtime ne spremeni.
STAT ne zazna spremembe vsebine zunaj sistema, če ostaneta mtime in velikost enaka. TRUST je najhitrejši način za enoprocesne delovne obremenitve ali delovne obremenitve s skupnim predpomnilnikom; namerno ne zazna datotek, spremenjenih zunaj storh.
Cache::memory() je omejen s številom vnosov in številom bajtov. Če maxBytes ni podan, izračuna proračun na podlagi PHP memory_limit.
Cache::apcu() je izbiren. Če APCu ni na voljo ali je za trenutni SAPI onemogočen, deluje kot zaledje brez učinka.
Kdaj ga priključiti
DocStore vedno hrani majhne predpomnilnike na ravni primerka za zapise, ki jih je že prebral ali zapisal, in jih preverja glede na nastavljeni način. Priključitev zaledja doda predpomnilnik, ki preživi primerek: Cache::memory() je uporaben pri dolgotrajnih procesih, ki znova odpirajo shrambe, Cache::apcu() pa deli dekodirane zapise med zahtevami PHP-FPM. Primerjalni testi Primerjalni testi merijo približno 83 µs za hladno branje prek pomnilniškega zaledja in 6 µs za toplega zadetka, preverjenega z načinom STAT.