Ugrás a tartalomhoz

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:

PHP
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.