Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Eleni Tsertou - Ταχύτερο website με Persistent...

Eleni Tsertou - Ταχύτερο website με Persistent Object Cache: Μύθος ή Αλήθεια;

Οι caches αποτελούν σημαντικό συστατικό για κάθε website, καθώς αποθηκεύουν δεδομένα που χρησιμοποιούνται συχνά, επιτρέποντας στις σελίδες να φορτώνουν πιο γρήγορα και μειώνοντας το φόρτο στους servers. Αυτό βελτιώνει το Performance του website και την εμπειρία του χρήστη.

Ένας σημαντικός τύπος cache στο WordPress είναι η Object Cache. Στην ομιλία θα δούμε πως μπορούμε να βελτιώσουμε την ταχύτητα ενός website με την χρήση της Persistent Object Cache. Πιο συγκεκριμένα, θα παρουσιάσουμε τι είναι η Object Cache, τί προσφέρει το Persistency και τις επιλογές που υπάρχουν ως προς την αποθήκευσή της (backend). Θα δείξουμε επίσης ένα παράδειγμα με μετρήσιμη βελτίωση ταχύτητας και τέλος θα αναφερθούμε στην αξιοποίηση της προγραμματιστικά.

Υπάρχει όμως τελικά πάντα όφελος από τη χρήση της Persistent Object Cache σε όλα τα WordPress websites;

Avatar for WordPress Greek Community

WordPress Greek Community

November 08, 2025
Tweet

More Decks by WordPress Greek Community

Other Decks in Programming

Transcript

  1. Ελένη Τσέρτου, MEng ECE ΝTUA Ταχύτερο website με Persistent Object

    Cache Μύθος ή Αλήθεια; Site Reliability Engineer @
  2. User Web server WordPress Database Browser Browser cache Page cache

    Object cache CDN cache Tο Ταξίδι ενός Request ... Cache: Προσωρινή αποθήκευση δεδομένων που χρησιμοποιούνται συχνά σε ένα πιο γρήγορο μέρος
  3. Calculations Aggregations Transformations Counts Statistics Navigation Menus Image Dimensions Thumbnail

    sizes Cart Sessions Forum topics Product Data Arbitrary data Cron schedules Widget output Translation strings Shipping calculations Rewrite rules Arrays Nonce values Everything is an Object! “Οbject” στην Object cache = κάθε PHP data structure
  4. Κλάση WP_Object_Cache built-in στο WordPress Αποθηκεύει στην μνήμη (RAM) δεδομένα

    υπολογιστικά δαπανηρά να επαναδημιουργηθούν πχ. database queries​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Mελλοντικά αιτήματα εξυπηρετούνται γρήγορα από την μνήμη Η Object Cache του WordPress
  5. Μόλις ολοκληρωθεί το request τα δεδομένα της Object Cache διαγράφονται

    από την μνήμη! Η Object Cache ΔΕΝ ΕΙΝΑΙ Persistent Blink and You’ll Miss it ...
  6. Ταχύτητα website Μείωση του Time to First Byte (TTFB) και

    κατά συνέπεια και άλλων Web Vitals (πχ FCP, LCP) Χρήση ενός Persistent Backend για να επιβιώνει η Object Cache και σε επόμενα requests Οφέλη από την χρήση Persistent Object Cache Persistency ... I will Survive! Σταθερότητα / Κλιμάκωση Μείωση φόρτου στην Database Εκτέλεση λιγότερων Queries Περισσότερα ταυτόχρονα requests Business Value Αύξηση Conversions Καλύτερη κατάταξη στα οργανικά αποτελέσματα (SEO) Βελτίωμένη εμπειρία χρήστη (UX)
  7. Requirements (server-side) Requirements (WordPress plugins) Πού Αποθηκεύεται η Cache APCu

    PHP APCu Extension APCu Manager / W3 Total Cache / atec Cache APCu Μνήμη της PHP Redis Redis Server + PHP Redis Extension Redis Object Cache / W3 Total Cache Μνήμη του Redis Server Memcached Memcached Server + PHP Memcached Extension W3 Total Cache Μνήμη του Memcached Server Docket Cache Recommended: PHP OPcache Extension Docket Cache Αρχεία .php στον server / μνήμη της PHP Persistent Object Cache: Backend
  8. Valkey: Η εξέλιξη του Redis O Valkey είναι ένα open

    source fork του Redis και διοικείται από την κοινότητα και το Linux Foundation Δημιουργήθηκε ως απάντηση στην αλλαγή licensing του Redis Διατηρεί πλήρη συμβατότητα με τον Redis (WordPress Plugins και PHP Extension) Βελτιωμένη απόδοση multi-threaded (αξιοποιεί καλύτερα πολλαπλές CPU)
  9. Transients API for Developers Transients API: Τύπος caching στο WordPress

    Αποθήκευση προσωρινών δεδομένων και αποτελεσμάτων με expiration time Αποθηκεύονται στον πίνακα wp_options στη βάση δεδομένων
  10. Το Transients API είναι έξυπνο! Αν “δει” εγκατεστημένο Persistent Object

    Cache το χρησιμοποιεί (αντί της βάσης δεδομένων) Χωρίς καμία αλλαγή στον κώδικα, βελτίωση της ταχύτητας! Η Δύναμη των Transients
  11. Πραγματικά παραδείγματα Δύο eCommerce (WooCommerce) Live WordPress websites πελατών Case

    1: Website που παρουσίαζε μεγάλες αργοπορίες Case 2: Website χωρίς μεγάλες αργοπορίες Μετρήσεις με και χωρίς Persistent Object Cache (Redis Backend) Case Study: Persistent Object Cache
  12. “Query Monitor” plugin: Πόσα database queries εκτελούνται στο page load

    Πόσο χρόνο χρειάζονται Slow queries Page Generation Time Metrics: Database Queries: ο συνολικός αριθμός των queries Page Generation Time: ο χρόνος που χρειάζεται ο server να παράξει την σελίδα Στόχος: Η μείωση του Time to First Byte (TTFB) Case Study: Μετρώντας το Όφελος
  13. Case Study 1: Το όφελος στην πράξη Μείωση Page Generation

    Time: ~ 63% Homepage ~ 53% Κατηγορία ~ 70% Σελίδα προϊόντος ~ 53% “Στατική” σελίδα
  14. Μείωση Database queries: ~ 53% Homepage ~ 33% Κατηγορία ~

    59% Σελίδα προϊόντος ~ 55% “Στατική” σελίδα Case Study 1: Το όφελος στην πράξη
  15. Case Study 2: Όφελος μόνο σε QPS Εδώ δεν βελτιώνεται

    το Time to First Byte με Persistent Object Cache
  16. Database bottleneck, αργή βάση δεδομένων → όφελος (πχ σε slow

    queries) Fast Database / μη σύνθετα queries → μπορεί να μην έχουμε όφελος Σε περιβάλλοντα με πολύ γρήγορη Database → Persistent Object Cache είναι extra overhead (π.χ. Serialization/Deserialization & Cache Invalidation) Ταχύτερο website με Persistent Object Cache: Μύθος ή Αλήθεια;
  17. Μετρήστε ΠΡΙΝ την ενεργοποίηση μίας Persistent Object Cache Μετρήστε ΜΕΤΑ

    την ενεργοποίηση της Συγκρίνετε τα αποτελέσματα! “Y‌ ou cannot optimize something without first being able to measure it.”‌ Η λύση: Πώς ξέρω αν θα με ωφελήσει;
  18. Take Away: Μην εγκαθιστάτε λύσεις επειδή "είναι γρήγορες" ... Εγκαταστήστε

    λύσεις επειδή λύνουν ένα πραγματικό, μετρήσιμο πρόβλημα Η απάντηση βρίσκεται ΠΑΝΤΑ στα δεδομένα Ευχαριστώ για τον χρόνο και την προσοχή σας!