דילוג לתוכן
חיפוש באתר

ביצועים

Redis לוורדפרס: מטמון אובייקטים — מתי הוא עוזר ומתי לא

מה ההבדל בין מטמון עמודים למטמון אובייקטים, מתי Redis משפר אתר וורדפרס — חנויות, משתמשים מחוברים, אינדקסים — ומתי הוא לא שווה את המאמץ.

· 1 צפיות ·

Redis הוא מסד נתונים שיושב בזיכרון ומשמש באתרי וורדפרס כמטמון אובייקטים מתמשך (Persistent Object Cache): הוא שומר תוצאות של שאילתות וחישובים שוורדפרס כבר ביצעה, כך שבבקשה הבאה הן נשלפות מהזיכרון במקום לפנות שוב למסד הנתונים. לפי התיעוד של וורדפרס, מטמון האובייקטים המובנה "אינו מתמשך כברירת מחדל" — הוא חי רק בזמן בקשה אחת ונמחק בסופה. Redis הופך אותו למתמשך. זה יכול לשפר מאוד את זמן התגובה של אתר כבד, אבל זה לא פתרון קסם, ובאתר תדמית שמוגש ממטמון עמודים מלא — התועלת קטנה. במאמר הזה: מתי Redis עוזר, מתי לא, ואיך מתקינים.

שתי שכבות מטמון שונות

הבלבול הנפוץ הוא בין מטמון עמודים למטמון אובייקטים:

מטמון עמודים מטמון אובייקטים (Redis)
מה נשמר ה-HTML המוגמר של העמוד תוצאות שאילתות, הגדרות, נתונים
מה נחסך PHP ומסד נתונים כמעט לגמרי חלק מהשאילתות למסד הנתונים
למי זה עוזר גולשים אורחים בעמודים זהים כל בקשה שמריצה PHP
דוגמאות WP Rocket, מטמון בשרת או ב-CDN Redis, Memcached

מטמון עמודים הוא בדרך כלל השיפור הגדול ביותר, כי הוא חוסך את כל העבודה. אבל יש בקשות שהוא לא יכול לטפל בהן — ושם נכנס מטמון האובייקטים. על מטמון עמודים ושכבות המטמון השונות כתבתי במאמר מטמון באתר.

מתי Redis עוזר

מטמון אובייקטים עוזר בכל בקשה שמריצה את וורדפרס בפועל, ולא מוגשת מהמטמון:

  • חנויות ווקומרס — עגלת קניות, קופה ואזור אישי לא נשמרים במטמון עמודים, כי הם אישיים. כל גולש עם מוצר בעגלה מריץ PHP ושאילתות. ראו למה ווקומרס איטי.
  • משתמשים מחוברים — אתרי מנויים, פורומים, אזורי לקוחות ופורטלים.
  • ממשק הניהול — עורכי תוכן שעובדים כל היום באתר כבד.
  • אתרים עם הרבה תוכן ושאילתות מורכבות — אינדקסים עם סינון לפי עיר וקטגוריה, שבהם יש אינספור צירופים שלא כולם נמצאים במטמון העמודים.
  • בקשות API ו-AJAX, שבדרך כלל לא נשמרות במטמון עמודים.

מתי זה לא עוזר (או מזיק)

  • אתר תדמית קטן עם מטמון עמודים — כמעט כל הביקורים מוגשים כ-HTML מוכן, ו-Redis לא נכנס לתמונה.
  • שאילתה אחת איטית — אם יש שאילתה שלוקחת שנייה, צריך לתקן אותה או להוסיף אינדקס במסד הנתונים. מטמון רק מסתיר את הבעיה עד שהוא מתרוקן.
  • שרת בלי זיכרון פנוי — Redis צורך זיכרון. בשרת קטן ועמוס, הוא עלול להתחרות על הזיכרון עם PHP ומסד הנתונים.
  • אחסון משותף — לא כל חברת אחסון מאפשרת להפעיל Redis, ובאחסון משותף פשוט זה לעיתים קרובות לא זמין.

מאז וורדפרס 6.1, בדיקת "בריאות האתר" ממליצה על מטמון אובייקטים מתמשך כשהאתר גדול מספיק כדי להרוויח ממנו. ההמלצה מופיעה תחת "שיפורים מומלצים", לא כבעיה קריטית — ואין סיבה להיבהל ממנה באתר קטן.

איך מתקינים

שלושה רכיבים צריכים לעבוד יחד:

  1. שרת Redis — מותקן בשרת עצמו או כשירות מנוהל. בדרך כלל זה תלוי בחברת האחסון; ראו אחסון וורדפרס.
  2. ספריית חיבור ל-PHP — כמו PhpRedis (הרחבה של PHP) או Predis.
  3. תוסף בוורדפרס — הנפוץ הוא Redis Object Cache, עם יותר מ-500,000 התקנות פעילות. הוא מתקין קובץ "drop-in" בתיקיית wp-content שמחליף את מטמון האובייקטים המובנה, ומציג במסך ההגדרות אם החיבור פעיל.

שני דברים חשובים בהגדרה. ראשית, קידומת ייחודית לכל אתר — אם כמה אתרים חולקים אותו שרת Redis, בלי קידומת הם עלולים לקרוא נתונים זה של זה. שנית, הגבלת זיכרון ומדיניות פינוי — שכשהזיכרון מתמלא, Redis ימחק את הנתונים הישנים ולא ייכשל.

איך יודעים שזה עזר

מודדים לפני ואחרי, על בקשות שלא מוגשות ממטמון העמודים: עמוד העגלה, ממשק הניהול, או עמוד עם פרמטר שעוקף את המטמון. תוסף כמו Query Monitor מראה כמה שאילתות רצו ובכמה זמן. אם מספר השאילתות לא ירד — משהו בהגדרה לא עובד. על מדידת זמן תגובת השרת כתבתי במאמר TTFB, ועל ניקוי מסד הנתונים עצמו במאמר אופטימיזציה למסד נתונים.

שאלות נפוצות

Redis או Memcached?

שניהם עובדים כמטמון אובייקטים לוורדפרס. Redis נפוץ יותר היום ותומך ביותר סוגי נתונים ובשמירה לדיסק; בפועל, הבחירה תלויה לרוב במה שזמין בשרת.

צריך לנקות את המטמון אחרי עדכון?

וורדפרס מנקה את הנתונים הרלוונטיים כשתוכן משתנה. אחרי עדכון גדול של תוספים, או כשמשהו נראה לא תקין, אפשר לרוקן את המטמון כולו מהגדרות התוסף.

מה קורה אם שרת Redis נופל?

תלוי בהגדרה. תוסף מוגדר נכון יחזור לעבודה ישירה מול מסד הנתונים — האתר יהיה איטי יותר, אבל יעבוד.

Redis הוא כלי טוב כשמשתמשים בו במקום הנכון. אם האתר או החנות שלכם איטיים גם עם מטמון עמודים, אני מאבחן איפה הולך הזמן בשרת ובמסד הנתונים — פירוט בעמוד שיפור מהירות אתר, או כתבו לי.

אהבתם את המאמר?

בואו נבנה יחד!

מתכננים אתר חדש, פורטל, חנות או מערכת ניהול תוכן? ספרו לי על הפרויקט, ואחזור אליכם בעצמי. אני מתחיל תמיד בהבנת הצרכים העסקיים והטכניים — ורק אז ממליץ על הפתרון הנכון.

חיפוש באתר