Vahemällu salvestamine
storh sisaldab väikeseid vahemälu taustsüsteeme ega vaja käitusajal lisasõltuvusi:
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
);
Vahemälukihid:
- dekodeeritud DocStore'i kirjed
- puuduvate kirjete negatiivsed otsingutulemused
- segmenteeritud logi manifestid
- hõredad segmendiindeksid
Valideerimisrežiimid:
CacheValidation::STAT: kontrollib olemasolu, muutmisaega ja suurust.CacheValidation::HASH: kontrollib olemasolu, muutmisaega, suurust ja sisu räsi.CacheValidation::TRUST: vahelehelistel vahemälu tabamustel ei kontrollita failisüsteemi ning usaldatakse, et praegune storh instants või jagatud vahemälu taustsüsteem avaldab selgesõnalised storh kirjutamised.
STAT on kiire valideerimise vaikerežiim. Kasutage režiimi HASH, kui iga vahemälutabamuse korral tuleb kontrollida ka faili sisu, sealhulgas sama suurusega kirjutisi, mille puhul muutmisaeg säilib.
STAT ei tuvasta muutust väljaspool süsteemi, kui nii muutmisaeg kui ka suurus säilivad. TRUST on kiireim režiim ühe protsessi või jagatud vahemäluga töökoormuste jaoks; see ei tuvasta tahtlikult faile, mida on muudetud väljaspool storh.
Cache::memory() piiratakse kirjete arvu ja baitide järgi. Kui maxBytes pole esitatud,
arvutatakse eelarve PHP memory_limit põhjal.
Cache::apcu() on valikuline. Kui APCu pole saadaval või on praeguse SAPI jaoks keelatud,
töötab see tühja taustsüsteemina.
Millal vahemälu lisada
DocStore hoiab alati väikest instantsipõhist vahemälu kirjete jaoks, mida see on juba lugenud või kirjutanud, ning valideerib neid seadistatud režiimi järgi. Taustsüsteemi lisamine loob instantsi elueast kauem püsiva vahemälu: Cache::memory() aitab kaua töötavaid protsesse, mis avavad hoidlaid korduvalt, ja Cache::apcu() jagab dekodeeritud kirjeid PHP-FPM-i päringute vahel. Võrdlustestid näitavad, et mälu taustsüsteemi külm lugemine võtab umbes 83 µs, soe STAT-kontrolliga tabamus aga 6 µs.