Μετάβαση στο περιεχόμενο
EuroVPSEuroVPS
Περιοχή πελατών

Το caching στην PHP: OPcache, Memcached και Redis

Η PHP τρέχει ένα πολύ μεγάλο μερίδιο των δυναμικών websites, γι' αυτό είναι σημαντικό οι προγραμματιστές PHP να είναι ενημερωμένοι για το caching: OPcache, caches δεδομένων και caches σελίδων.

Από Thomas

Ενημερώθηκε 22 Οκτωβρίου 20264 λεπτά ανάγνωσης
Εικόνα εξωφύλλου: το caching στην PHP

Τι είναι η PHP;

Η PHP είναι μια γλώσσα προγραμματισμού που χρησιμοποιείται για τη δημιουργία δυναμικού περιεχομένου σε μια ιστοσελίδα, όπως η εμφάνιση μιας λίστας εγγραφών από μια βάση δεδομένων, η ανάκτηση διαφημίσεων, ή η εμφάνιση μιας ροής ειδήσεων ή ενός Twitter stream. Ένας τρόπος να επιταχυνθούν όλα αυτά είναι το PHP caching.

Τι είναι το caching;

Οι ιστοσελίδες φορτώνουν πιο γρήγορα όταν τμήματα ή ολόκληρη η σελίδα αποθηκεύονται στη μνήμη, σε ένα αρχείο στον web server, ή στο δίκτυο διανομής περιεχομένου (CDN), αντί να δημιουργούνται κάθε φορά που κάποιος ζητά αυτό το URL. Αυτό λέγεται caching. Προσφέρει καλύτερη εμπειρία χρήστη, γιατί οι χρήστες δεν περιμένουν τόσο όταν κάνουν κλικ για να φορτώσει η επόμενη σελίδα.

Μπορείτε να κάνετε cache περιεχόμενο, όπως εικόνες, HTML και δεδομένα. Για παράδειγμα, δεν χρειάζεται να ανακτηθεί η ίδια εικόνα 10 φορές για 10 διαφορετικούς ανθρώπους. Καλύτερα να γίνει cache. Η cache αποθηκεύει την ιστοσελίδα με όλα τα δεδομένα ήδη στη θέση τους, όπως μια λίστα ονομάτων.

Σχετικό άρθρο: Το Varnish Cache εξηγημένο

Το βιβλίο συνταγών του προγραμματιστή

Σκεφτείτε μια κλήση στη βάση δεδομένων. Δεν έχει νόημα να διαβάζεται η βάση 100 φορές για 100 ανθρώπους που φορτώνουν όλοι τις ίδιες εγγραφές, κάτι κοινό για πολλούς, όπως η τιμή ενός προϊόντος που προβάλλετε στην πρώτη σελίδα. Είναι πιο αποδοτικό να ανακτηθεί η τιμή από την cache.

Οι εφαρμογές μπορούν επίσης να κάνουν cache αποκρίσεις από APIs. Για παράδειγμα, μέσω API δουλεύει η διαφήμιση μέσα στη σελίδα. Αλλά αυτό είναι ένα αντιπαράδειγμα, γιατί μια διαφήμιση δεν θα την κάνατε cache: ο διαφημιζόμενος δείχνει διαφορετικές διαφημίσεις σε διαφορετικούς ανθρώπους.

Άρα το caching δεν εφαρμόζεται σε όλες τις περιπτώσεις. Ειδικά, δεν είναι κατάλληλο για δεδομένα που αλλάζουν συχνά ή είναι μοναδικά για κάθε χρήστη.

Η PHP έχει μία σημαντική ενσωματωμένη cache: το OPcache, που συνοδεύει την PHP. Κάθε φορά που τρέχει ένα PHP script, η PHP πρώτα το μεταγλωττίζει σε bytecode. Το OPcache κρατά αυτό το μεταγλωττισμένο bytecode σε κοινόχρηστη μνήμη, ώστε τα scripts να μη μεταγλωττίζονται ξανά σε κάθε αίτημα. Βεβαιωθείτε ότι είναι ενεργοποιημένο και ότι η μνήμη του είναι αρκετά μεγάλη για τον κώδικά σας. Είναι συνήθως η φθηνότερη επιτάχυνση PHP που υπάρχει.

Η PHP, όμως, δεν έχει ενσωματωμένη cache για τα δεδομένα σας. Για αυτό υπάρχουν open source frameworks και extensions, όπως clients για Memcached και Redis, που επιτρέπουν στον προγραμματιστή να σχεδιάσει τον κώδικά του να δουλεύει έτσι. Μια client library ελέγχει την cache πριν ρωτήσει τη βάση δεδομένων.

PHP caching και WordPress

Το WordPress έχει ένα API object cache που μπορεί να υποστηρίζεται από Memcached ή Redis, και plugins page cache όπως τα W3 Total Cache ή WP Super Cache προσθέτουν caching ολόκληρης σελίδας. Αυτό θα επιταχύνει και τη δημοσίευση περιεχομένου στο CMS σας. Και όποιος custom κώδικας WordPress γράψετε μπορεί να χρησιμοποιήσει caching αν προσθέσετε ένα framework.

Ρύθμιση της cache

Μια εύλογη ένσταση: πώς μπορεί μια cache να ξέρει τους πέντε τελευταίους τίτλους χωρίς να ελέγξει; Η απάντηση είναι ότι δεν ξέρει.

Το caching ελέγχεται από μέγεθος και χρόνο. Μπορείτε, για παράδειγμα, να ορίσετε τον χρόνο της cache σε 5 δευτερόλεπτα ή 5 λεπτά.

Όταν λήξει ο χρόνος της cache, ο κώδικας PHP κάνει το ταξίδι μέχρι τον database server ή το API για να ελέγξει αν άλλαξε κάτι.

Οι caches περιορίζονται και από το μέγεθος: όταν μια cache γεμίσει, οι λιγότερο πρόσφατα χρησιμοποιημένες εγγραφές απομακρύνονται για να κάνουν χώρο στις νέες.

Το συμπέρασμα

Η PHP τρέχει ένα πολύ μεγάλο μερίδιο των δυναμικών websites.

Το OPcache, μια cache δεδομένων και μια cache σελίδων είναι τα τρία επίπεδα που αξίζει να ρυθμίσετε σωστά. Αν έχετε ερωτήσεις, επικοινωνήστε με την ομάδα μας.

Από το αρχείο του blog της EuroVPS, πρώτη δημοσίευση 10 Αυγούστου 2021.

Όλες οι σημειώσεις