Välimuisti
storh sisältää pienet välimuistitaustajärjestelmät eikä vaadi ajonaikaisia riippuvuuksia:
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
);
Välimuistikerrokset:
- puretut DocStore-tietueet
- puuttuvien tietueiden negatiiviset haut
- segmentoitu lokin manifestit
- harvat segmentti-indeksit
Validointitilat:
CacheValidation::STAT: tarkista olemassaolo, mtime ja koko.CacheValidation::HASH: tarkista olemassaolo, mtime, koko ja sisällön tiiviste.CacheValidation::TRUST: ohita tiedostojärjestelmän validointi osumien yhteydessä ja luota siihen, että nykyinen storh-instanssi tai jaettu välimuistitaustajärjestelmä julkaisee nimenomaiset storh-kirjoitukset.
STAT on oletusarvoinen nopea validointitila. Käytä tilaa HASH, kun jokaisen välimuistiosuman on tarkistettava myös tiedoston sisältö, mukaan lukien samankokoiset kirjoitukset, joissa mtime säilyy. STAT ei havaitse ulkopuolista sisällönmuutosta, jos sekä mtime että koko säilyvät. TRUST on nopein tila yhden prosessin tai jaetun välimuistin työkuormille; se ei tarkoituksella havaitse tiedostoja, joita muutetaan kohteen storh ulkopuolella.
Cache::memory() on rajattu merkintöjen määrän ja tavujen mukaan. Jos maxBytes ei anneta, budjetti lasketaan kohteen PHP-arvosta memory_limit.
Cache::apcu() on valinnainen. Jos APCu ei ole käytettävissä tai se on poistettu käytöstä nykyisessä SAPI:ssa, se toimii tyhjänä taustajärjestelmänä.
Milloin välimuisti kannattaa liittää
DocStore pitää aina pienet instanssikohtaiset välimuistit lukemistaan tai kirjoittamistaan tietueista ja validoi ne määritetyn tilan mukaan. Taustajärjestelmän liittäminen lisää välimuistin, joka säilyy instanssia pidempään: Cache::memory() auttaa pitkäkestoisissa prosesseissa, jotka avaavat tallennuksia uudelleen, ja Cache::apcu() jakaa puretut tietueet PHP-FPM-pyyntöjen kesken. Vertailutestien mukaan muistitaustajärjestelmän kylmä luku kestää noin 83 µs ja lämmin, STAT-validoitu osuma 6 µs.