Μετάβαση στο περιεχόμενο

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

Το 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. Τα αποτελέσματα συγκριτικής αξιολόγησης μετρούν περίπου 83 µs ανά ψυχρή ανάγνωση για το σύστημα μνήμης, έναντι 6 µs ανά θερμή επιτυχή αναζήτηση με επικύρωση STAT.