Pāriet uz saturu

Kešatmiņa

storh komplektā ir nelieli kešatmiņas aizmugursistēmu moduļi un nav izpildlaika atkarību:

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
);

Kešatmiņas slāņi:

  • atkodēti DocStore ieraksti
  • negatīvas meklēšanas rezultāti par neesošiem ierakstiem
  • segmentētā žurnāla manifesti
  • retināti segmentu indeksi

Pārbaudes režīmi:

  • CacheValidation::STAT: pārbaudīt esamību, mtime un izmēru.
  • CacheValidation::HASH: pārbaudīt esamību, mtime, izmēru un satura jaucējvērtību.
  • CacheValidation::TRUST: trāpījumu gadījumā izlaist failu sistēmas pārbaudi un uzticēties pašreizējai storh instancei vai koplietojamai kešatmiņas aizmugursistēmai, kas publicē skaidrus storh ierakstus.

STAT ir noklusējuma ātrās pārbaudes režīms. Izmantojiet HASH, ja katrā kešatmiņas trāpījumā jāpārbauda arī faila saturs, tostarp tāda paša izmēra ierakstos, kas saglabā mtime. STAT nevar noteikt satura izmaiņas ārpus sistēmas, ja saglabājas gan mtime, gan izmērs. TRUST ir ātrākais režīms vienam procesam vai koplietojamas kešatmiņas slodzēm; tas apzināti nenosaka failu izmaiņas ārpus storh.

Cache::memory() ir ierobežota gan pēc ierakstu skaita, gan baitiem. Ja maxBytes nav norādīts, tas aprēķina budžetu pēc PHP memory_limit.

Cache::apcu() nav obligāts. Ja APCu nav pieejams vai ir atspējots pašreizējai SAPI, tas darbojas kā tukša aizmugursistēma.

Kad to pievienot

DocStore vienmēr uztur nelielas katras instances kešatmiņas ierakstiem, ko tā jau ir nolasījusi vai ierakstījusi, validējot tos atbilstoši konfigurētajam režīmam. Aizmugursistēmas pievienošana nodrošina kešatmiņu, kas saglabājas arī pēc instances darbības beigām: Cache::memory() palīdz ilgstoši darbojošiem procesiem, kas atkārtoti atver krātuves, bet Cache::apcu() koplieto atkodētos ierakstus starp PHP-FPM pieprasījumiem. veiktspējas etalonmērījumi rāda, ka auksta nolasīšana ar atmiņas aizmugursistēmu aizņem aptuveni 83 µs, bet silts, ar STAT validēts trāpījums — 6 µs.