הגדרת מטמון מנוהל של Bitrix: Redis וקישור תגים

כשקטלוג המוצרים גדל ועדכונים מ-1C מאפסים את כל המטמון, האתר מתחיל להאט ולקרוס תחת עומס. אנחנו מגדירים מטמון מנוהל של Bitrix על Redis או memcached כדי לאפס רק את הנתונים שהשתנו. הצוות שלנו מספק פרויקטים סוהר—מביקורת ועד הגדרה ותמיכה שוטפת—ומבטיח ביצועים יציבים גם בעומסי שיא.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
הגדרת מטמון מנוהל של Bitrix: Redis וקישור תגים
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

הגדרת מטמון מנוהל של Bitrix: Redis וקישור תגיות

דמיינו חנות מקוונת עם קטלוג של 50,000 פריטים. כל שעה מתעדכנים מחירים מ-1C — וכל המטמון נמחק. השרת קורס תחת עומס, דפים נטענים תוך 10 שניות. נשמע מוכר? מטמון מנוהל (Механизм тегированного кеширования) פותר זאת ללא השקעה הונית. אנו מתקינים אותו במפתח מלא על Redis או memcached — עם תוצאות מובטחות. הניסיון שלנו: למעלה מ-10 שנים ו-50 פרויקטים מוצלחים של Bitrix. אתם מקבלים חיסכון במשאבי שרת והאצת אתר פי כמה מבלי להגדיל את תקציב האירוח.

כיצד מטמון מנוהל פותר בעיות ביצועים

מטמון מנוהל (\Bitrix\Main\Data\ManagedCache) פועל על עיקרון תגיות: כל אובייקט במטמון מסומן במזהה ייחודי. כאשר נתונים מתעדכנים, רק אותה תגית נמחקת, לא כל בלוק המידע. זה מניב שיפור מהירות של פי 5–10 בדפים שאינם מושפעים מהשינויים.

דוגמה מהפרקטיקה שלנו: חנות מקוונת עם סנכרון 1C שעתי (500–2000 פריטים) — לאחר יישום תגיות גרעיניות iblock_element_ID, זמן טעינת הדף ירד מ-8 שניות ל-0.4. המטמון נמחק רק עבור פריטים ששונו, לא עבור כל הקטלוג.

פרמטר מטמון קבצים רגיל מטמון מנוהל (Redis)
מנגנון פסילה לפי TTL (זמן חיים) לפי תגיות (מחיקה ממוקדת)
השפעת עדכון 1C מוחק את כל בלוק המידע מוחק רק אלמנטים ששונו
זמן תגובת דף 3–10 שניות בשיא 0.2–0.5 שניות יציב
עומס שרת גבוה (רגנרציה תכופה) נמוך (המטמון חי זמן רב יותר)

מהו קישור תגיות וכיצד הוא פועל

קישור תגיות הוא גישה שבה כל פיסת נתונים במטמון משויכת לתגית אחת או יותר. תגיות הן מזהי מחרוזת, לדוגמה iblock_id_5 או element_123. כאשר מתרחשים שינויים (עדכון מחיר, הוספת מוצר), אתם פוסלים רק את התגית המתאימה, לא את כל המטמון. זה ממזער רגנרציה של מטמון ומפחית עומס על השרת.

כיצד מטמון מנוהל בנוי

המחלקה \Bitrix\Main\Data\ManagedCache פועלת על גבי אחסון אחורי — כברירת מחדל memcached או Redis (מוגדר ב-/bitrix/.settings.php). תגיות מאוחסנות בנפרד מהנתונים: כל תגית היא מונה גרסאות. כאשר תגית נפסלת, המונה גדל; כל הרשומות עם גרסת תגית מיושנת נחשבות כלא תקפות.

דוגמת שימוש בקומפוננטה:

$managedCache = Application::getInstance()->getManagedCache();
$cacheTag = 'iblock_id_' . $ibId;
if ($managedCache->read(3600, 'my_cache_key', $cacheTag)) {
    $result = $managedCache->get('my_cache_key');
} else {
    $result = /* тяжёлый запрос */;
    $managedCache->set('my_cache_key', $result);
    $managedCache->registerTag($cacheTag);
}

קריאה ל-$managedCache = Application::getInstance()->getManagedCache(); $cacheTag = 'iblock_id_' . $ibId; if ($managedCache->read(3600, 'my_cache_key', $cacheTag)) { $result = $managedCache->get('my_cache_key'); } else { $result = /* тяжёлый запрос */; $managedCache->set('my_cache_key', $result); $managedCache->registerTag($cacheTag); } מוחקת רק נתונים המסומנים בתגית זו — קומפוננטות אחרות ממשיכות לעבוד מהמטמון.

הגדרת Redis כאחסון אחורי

לייצור מומלץ Redis — הוא מהיר יותר מ-memcached בעבודה עם תגיות ותומך בשמירה מתמשכת. הגדרה ב-\Bitrix\Main\TaggedCache::clearByTag('iblock_id_5'):

'cache' => [ 'value' => [ 'type' => [ 'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis', 'extension' => 'redis', ], 'sid' => 'mysite', 'host' => '127.0.0.1', 'port' => 6379, 'serializer' => Redis::SERIALIZER_IGBINARY, ], ], 

הפרמטר /bitrix/.settings.php חשוב: הוא מקטין את גודל אובייקטי PHP המסודרים ב-30–50% בהשוואה ל-'cache' => [ 'value' => [ 'type' => [ 'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis', 'extension' => 'redis', ], 'sid' => 'mysite', 'host' => '127.0.0.1', 'port' => 6379, 'serializer' => Redis::SERIALIZER_IGBINARY, ], ], ברירת המחדל.

למדו עוד על Redis בתיעוד הרשמי ועל קישור תגיות בויקיפדיה.

מדוע Redis עדיף על memcached למטמון מנוהל

Redis מנצח בזכות:

  • שמירה מתמשכת — נתונים לא אובדים בעת אתחול (אם שמירה לדיסק מופעלת).
  • תמיכה במבנים מורכבים — תגיות ניתן לאחסן בנוחות כהאש או סטים.
  • igbinary מובנה — מקטין את גודל הנתונים ב-30–50%.
  • פסילת תגיות מהירה יותר בזכות פעולות אטומיות.

בנצ'מרקים מראים שמהירות הקריאה/כתיבה של Redis לתגיות גבוהה פי 2–3 מ-memcached, במיוחד עם תגיות רבות (10,000+).

כיצד אנו מתקינים מטמון מנוהל: שלב אחר שלב

  1. בדיקת מצב נוכחי: בדיקת גרסת Bitrix, נוכחות מודול ראשי 20+, זיהוי קומפוננטות שאינן משתמשות ב-ManagedCache.
  2. בחירת אחסון אחורי: אם Redis כבר על השרת, השתמשו בו. אחרת, התקינו Redis או הציעו memcached.
  3. עריכת .settings.php: ציון host, port, סידריאליזציה של igbinary.
  4. שיפוץ קומפוננטות: החלפת serializer => IGBINARY ב-serialize(), הוספת תגיות גרעיניות לפי מזהה פריט, מזהה סעיף, מזהה בלוק מידע.
  5. בדיקות: בדיקת עומס, אימות פסילה, מדדים.
  6. תיעוד: מתן הוראות לצוות להוספת קומפוננטות חדשות.

מה כלול בהתקנת מטמון מנוהל במפתח מלא

שלב מה אנו עושים תוצאה
1. ניתוח בדיקת גרסת Bitrix, זמינות מודול ראשי 20+, קומפוננטות נוכחיות דוח עם המלצות
2. הגדרת אחסון אחורי התקנה והגדרה של Redis/memcached, עריכת .settings.php אחסון מטמון עובד
3. שיפוץ קומפוננטות החלפת CBitrixComponent::getCache() ב-ManagedCache, הוספת תגיות פסילה גרעינית
4. בדיקות אימות 50+ דפים, סימולציה של עדכוני 1C מדדים: TTFB, יחס פגיעות מטמון
5. תיעוד כתיבת הוראות להוספת קומפוננטות חדשות העברת ידע לצוות

לוח זמנים ומחירים

ההתקנה אורכת 1 עד 3 ימי עבודה בהתאם למספר הקומפוננטות ומוכנות השרת (זמינות Redis). המחיר מחושב באופן אישי לאחר בדיקה חינמית — פשוט צרו קשר ונשלח הערכה מפורטת.

כיצד להימנע מטעויות התקנה נפוצות

בדקו בקפידה רישום תגיות: כל קריאה ל-getCache() חייבת להיות מלווה ב-ManagedCache. ודאו ש-Redis מוגדר לשמירה מתמשכת (save). השתמשו בתגיות לא רק עבור פריטים אלא גם עבור סעיפים, מאפיינים, מטא-דאטה. בדיקת עומס לפני פריסה היא חובה — אחרת אתם מסתכנים בפסילת מטמון בשעות שיא.

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