Gyorsítótárazás
A(z) storh kis gyorsítótár-háttértárakkal és futásidejű függőség nélkül érkezik:
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
);
Gyorsítótárrétegek:
- dekódolt DocStore-rekordok
- hiányzó rekordok negatív keresései
- szegmentáltnapló-jegyzékek
- ritka szegmensindexek
Érvényesítési módok:
CacheValidation::STAT: létezés, módosítási idő és méret ellenőrzése.CacheValidation::HASH: létezés, módosítási idő, méret és tartalomhash ellenőrzése.CacheValidation::TRUST: találat esetén kihagyja a fájlrendszer ellenőrzését, és megbízik az aktuális storh példányban vagy egy megosztott gyorsítótár-háttértárban, amely explicit storh írásokat tesz közzé.
A(z) STAT az alapértelmezett gyors érvényesítési mód. Akkor használja a(z) HASH módot, ha minden gyorsítótár-találatnál a fájl tartalmát is ellenőrizni kell, beleértve az azonos méretű, módosítási időt megőrző írásokat. A(z) STAT nem észleli a fájlon kívülről végzett olyan tartalommódosítást, amely megőrzi a módosítási időt és a méretet. A(z) TRUST a leggyorsabb mód egyfolyamatos vagy megosztott gyorsítótáras terhelésnél; szándékosan nem észleli a(z) storh hatókörén kívül módosított fájlokat.
A(z) Cache::memory() korlátozott a bejegyzések száma és a bájtok alapján. Ha nincs megadva a(z) maxBytes, a(z) PHP memory_limit értékéből számítja ki a keretet.
A(z) Cache::apcu() opcionális. Ha az APCu nem érhető el, vagy az aktuális SAPI-ban le van tiltva, üres háttértárként működik.
Mikor érdemes csatolni egyet
A(z) DocStore mindig megtartja a már olvasott vagy írt rekordok kis, példányonkénti gyorsítótárát, a beállított mód szerinti érvényesítéssel. Egy háttértár csatolásával olyan gyorsítótárat ad hozzá, amely túléli a példányt: a(z) Cache::memory() hasznos a tárakat újranyitó, hosszan futó folyamatoknál, a(z) Cache::apcu() pedig dekódolt rekordokat oszt meg a(z) PHP-FPM kérései között. A teljesítménymérések szerint a memória-háttértár esetén a hideg olvasás körülbelül 83 µs, a meleg, STAT-ellenőrzésű találat pedig 6 µs.