
# Podėliavimas

storh turi nedidelius talpyklos modulius ir nereikalauja vykdymo aplinkos priklausomybių:

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

Talpyklos sluoksniai:

- iškoduoti DocStore įrašai
- nerastų įrašų paieškos talpykloje
- segmentuoto žurnalo manifestai
- reti segmentų indeksai

Tikrinimo režimai:

- `CacheValidation::STAT`: tikrinti, ar failas egzistuoja, jo keitimo laiką ir dydį.
- `CacheValidation::HASH`: tikrinti, ar failas egzistuoja, jo keitimo laiką, dydį ir turinio maišą.
- `CacheValidation::TRUST`: praleisti failų sistemos tikrinimą, kai duomenys yra talpykloje, ir pasitikėti esama storh instancija arba bendra talpyklos saugykla, kad ji paskelbs aiškius storh įrašymus.

`STAT` yra numatytasis greitasis tikrinimo režimas. Naudokite `HASH`, kai kiekvieno talpyklos įrašo naudojimo metu reikia patikrinti ir failo turinį, įskaitant tokio pat dydžio įrašus, kurie nekeičia keitimo laiko.
`STAT` neaptinka turinio pakeitimų už sistemos ribų, jei nepasikeitė nei keitimo laikas, nei dydis. `TRUST` yra greičiausias režimas vieno proceso arba bendros talpyklos aplinkose; jis tyčia neaptinka failų, pakeistų už storh ribų.

`Cache::memory()` ribojamas įrašų skaičiumi ir baitų kiekiu. Jei `maxBytes` nenurodytas, biudžetas apskaičiuojamas pagal PHP `memory_limit`.

`Cache::apcu()` yra pasirenkama. Jei APCu nepasiekiama arba išjungta dabartinėje SAPI, ji veikia kaip tuščias modulis.

## Kada prijungti talpyklos modulį

`DocStore` visada palaiko nedideles kiekvienos instancijos talpyklas jau perskaitytiems arba įrašytiems įrašams ir tikrina juos pagal sukonfigūruotą režimą. Prijungus modulį, talpykla išlieka ilgiau nei pati instancija: `Cache::memory()` naudingas ilgai veikiantiems procesams, kurie iš naujo atidaro saugyklas, o `Cache::apcu()` leidžia dalytis iškoduotais įrašais tarp PHP-FPM užklausų. [etaloniniai bandymai](https://storh.inline0.dev/lt/docs/benchmarks) rodo, kad atminties modulis šaltą įrašą nuskaito maždaug per 83 µs, o šiltą, pagal STAT patikrintą įrašą – per 6 µs.
