
# Προσωρινή αποθήκευση

Το storh περιλαμβάνει μικρά συστήματα προσωρινής αποθήκευσης και δεν απαιτεί εξαρτήσεις κατά την εκτέλεση:

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

Επίπεδα προσωρινής αποθήκευσης:

- αποκωδικοποιημένες εγγραφές DocStore
- αρνητικές αναζητήσεις για εγγραφές που λείπουν
- manifest τμηματοποιημένου αρχείου καταγραφής
- αραιά ευρετήρια τμημάτων

Λειτουργίες επικύρωσης:

- `CacheValidation::STAT`: επικύρωση ύπαρξης, mtime και μεγέθους.
- `CacheValidation::HASH`: επικύρωση ύπαρξης, mtime, μεγέθους και κατακερματισμού περιεχομένου.
- `CacheValidation::TRUST`: παράλειψη επικύρωσης συστήματος αρχείων σε επιτυχείς αναζητήσεις και εμπιστοσύνη στην
  τρέχουσα παρουσία storh ή σε κοινόχρηστο σύστημα προσωρινής αποθήκευσης για τη δημοσίευση ρητών εγγραφών storh.

Το `STAT` είναι η προεπιλεγμένη γρήγορη λειτουργία επικύρωσης. Χρησιμοποιήστε το `HASH` όταν κάθε επιτυχής αναζήτηση στην προσωρινή μνήμη πρέπει
να επικυρώνει και τα περιεχόμενα του αρχείου, συμπεριλαμβανομένων εγγραφών ίδιου μεγέθους που διατηρούν το mtime.
Το `STAT` δεν μπορεί να εντοπίσει αλλαγή περιεχομένου εκτός συστήματος που διατηρεί τόσο το mtime όσο και
το μέγεθος. Το `TRUST` είναι η ταχύτερη λειτουργία για εργασίες μίας διεργασίας ή κοινόχρηστης προσωρινής μνήμης·
σκόπιμα δεν εντοπίζει αρχεία που αλλάζουν εκτός του storh.

Το `Cache::memory()` περιορίζεται από τον αριθμό καταχωρίσεων και τα byte. Όταν δεν παρέχεται το `maxBytes`,
υπολογίζεται ένα όριο βάσει του `memory_limit` του PHP.

Το `Cache::apcu()` είναι προαιρετικό. Αν το APCu δεν είναι διαθέσιμο ή είναι απενεργοποιημένο για το τρέχον
SAPI, λειτουργεί ως αδρανές σύστημα υποστήριξης.

## Πότε να συνδέσετε ένα

Το `DocStore` διατηρεί πάντα μικρές προσωρινές μνήμες ανά παρουσία για εγγραφές που έχει ήδη
διαβάσει ή γράψει, επικυρωμένες σύμφωνα με τη διαμορφωμένη λειτουργία. Η σύνδεση ενός συστήματος υποστήριξης προσθέτει
μια προσωρινή μνήμη που διαρκεί περισσότερο από την παρουσία: το `Cache::memory()` βοηθά διεργασίες μεγάλης διάρκειας
που ανοίγουν ξανά αποθήκες, ενώ το `Cache::apcu()` μοιράζεται αποκωδικοποιημένες εγγραφές
μεταξύ αιτημάτων PHP-FPM. Τα [αποτελέσματα συγκριτικής αξιολόγησης](https://storh.inline0.dev/el/docs/benchmarks) μετρούν
περίπου 83 µs ανά ψυχρή ανάγνωση για το σύστημα μνήμης, έναντι 6 µs ανά θερμή επιτυχή αναζήτηση με επικύρωση STAT.
