הגדרת Redis מעשית ל-1C-Bitrix

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

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

שאלות נפוצות

הגדרת מטמון Redis מעשית עבור 1C-Bitrix

המטמון הסטנדרטי של ביטריקס כותב נתונים לקבצים ב-/bitrix/cache/. באתר בעל עומס גבוה עם 10,000 מבקרים יומיים, זה יוצר עד 300,000 פעולות קלט/פלט בשנייה. אם הדיסק אינו NVMe, זמן ההשהיה גדל והדפים נטענים תוך 3–5 שניות. אנו נתקלים לעתים קרובות בפרויקטים כאלה: בחנות מסחר אלקטרוני אחת עם 50,000 מוצרים, דף הקטלוג נטען תוך 4.2 שניות. לאחר החלפת מטמון הקבצים ב-Redis, הזמן ירד ל-0.6 שניות—פי 7 מהר יותר, ללא שינוי בקוד הרכיבים. בממוצע, מעבר ממטמון קבצים ל-Redis חוסך 200 דולר בחודש בעלויות שרת עבור אתר עם 10,000 מבקרים יומיים. החיסכון בתשתית השרת יכול להגיע ל-50% על ידי הפחתת העומס על מערכת הדיסק. כפי שצוין בתיעוד של 1C-Bitrix, "עבור פרויקטים בעלי עומס גבוה, חיוני להשתמש במטמון בזיכרון כדי להפחית את זמן התגובה"מקור: תיעוד 1C-Bitrix.

למה Redis במקום מטמון קבצים?

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

השוואה בפרויקט טיפוסי:

פרמטר מטמון קבצים Redis
זמן השהיה ממוצע לגישה 1–5 אלפיות השנייה (HDD) / 100–500 מיקרו-שניות (SSD) 50–100 מיקרו-שניות
מקסימום בקשות ~500 IOPS (HDD) 50,000+ פעולות/שנייה
אחסון מטמון מתויג קבצים קטנים, ניקוי תיקיות תגיות יעילות, מחיקת DEL מהירה
צריכת זיכרון תלוי במערכת הקבצים נשלטת באמצעות maxmemory

הגדרת Redis למטמון ב-1C-Bitrix

נעבור על התצורה שלב אחר שלב.

חיבור Redis כבסיס מטמון

ב-/bitrix/.settings.php, הוסף או שנה את קטע המטמון:

'cache' => [ 'value' => [ 'type' => [ 'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis', 'extension' => 'redis', ], 'sid' => 'site1', // уникальный префикс для разделения данных ], ], 

הגדרות חיבור Redis מוגדרות בקובץ נפרד 'cache' => [ 'value' => [ 'type' => [ 'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis', 'extension' => 'redis', ], 'sid' => 'site1', // уникальный префикс для разделения данных ], ], או דרך התצורה:

// /bitrix/php_interface/init.php
define('BX_CACHE_TYPE', 'redis');
define('BX_CACHE_SID', 'site1');
$GLOBALS['CACHE_REDIS'] = [
    'host' => '127.0.0.1',
    'port' => 6379,
    'database' => 2, // отдельная БД от сессий
    'timeout' => 2,
];

הפרדת מטמון וסשנים

השתמש במאגרי Redis שונים (פרמטר /bitrix/php_interface/redis.php):

  • DB 0 — שירות (שמירת RDB)
  • DB 1 — סשנים
  • DB 2 — מטמון נתונים של ביטריקס
  • DB 3 — מטמון דפי HTML (אם בשימוש)

זה מאפשר לנקות את המטמון באופן עצמאי מהסשנים: // /bitrix/php_interface/init.php define('BX_CACHE_TYPE', 'redis'); define('BX_CACHE_SID', 'site1'); $GLOBALS['CACHE_REDIS'] = [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 2, // отдельная БД от сессий 'timeout' => 2, ]; מנקה רק את מטמון הנתונים.

מידע נוסף על הגדרת סשנים ב-Redis כדי לאחסן סשנים ב-Redis, הוסף ל-`init.php`: ```php ini_set('session.save_handler', 'redis'); ini_set('session.save_path', 'tcp://127.0.0.1:6379?database=1&prefix=SESS_'); ``` ובתצורת Redis לסשנים, השתמש במדיניות `volatile-lru`: ```ini maxmemory-policy volatile-lru ```

תצורת Redis למטמון נתונים

# /etc/redis/redis.conf
bind 127.0.0.1
port 6379
maxmemory 1gb
maxmemory-policy allkeys-lru
# вытеснять наименее используемые при нехватке памяти
activerehashing yes
tcp-keepalive 300

database היא המדיניות הנכונה למטמון: כשהזיכרון מתמלא, מפתחות בשימוש נדיר מוסרים. לסשנים, redis-cli -n 2 FLUSHDB עדיף (מסיר רק מפתחות עם TTL).

בחירת מדיניות פינוי למטמון

השוואה של מדיניות פופולריות:

מדיניות תיאור מתי להשתמש
# /etc/redis/redis.conf bind 127.0.0.1 port 6379 maxmemory 1gb maxmemory-policy allkeys-lru # вытеснять наименее используемые при нехватке памяти activerehashing yes tcp-keepalive 300 מסיר מפתחות בשימוש הנדיר ביותר מבין כולם למטמון נתונים
allkeys-lru מסיר LRU מבין מפתחות עם TTL לסשנים
volatile-lru מחזיר שגיאה כשהזיכרון מלא רק אם הנפח ידוע בוודאות
allkeys-lru מסיר את הנדירים ביותר בשימוש אם דפוס הגישה אינו אחיד

למטמון נתונים של ביטריקס, אנו ממליצים על volatile-lru. כשהזיכרון נמוך, ערכים ישנים ונדירים מוסרים בעוד נתונים חמים נשארים. מידע נוסף על מדיניות פינוי ניתן למצוא בוויקיפדיה.

מטמון מתויג ב-Redis: איך זה עובד

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

redis-cli -n 2 KEYS "BITRIX_CACHE_TAG_*" | head -20 

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

פתרון שיעור פגיעות נמוך

שיעור פגיעות נמוך (מתחת ל-80%) מצביע על בעיות. סיבות אפשריות:

  • פסילות תכופות מדי: לדוגמה, שערי חליפין משתנים כל 10 שניות. פתרון—הגדל TTL או שמור נתונים במטמון זמן רב יותר.
  • נפח Redis קטן: אם מוקצים 256 MB אך האתר יוצר 1 GB של מטמון, מפתחות ישנים מוסרים.
  • מדיניות פינוי שגויה: חייבת להיות allkeys-lfu למטמון, לא allkeys-lru.

שיעור הפגיעות היעד הוא 95%+. בפרויקטים שלנו, אנו משתמשים בניטור Grafana עבור מדד זה. אם אתה רוצה להאיץ את אתר הביטריקס שלך, צור קשר—נבצע ביקורת ונציע פתרון.

ניטור ביצועי מטמון

# Статистика использования
redis-cli -n 2 INFO stats | grep -E "keyspace_hits|keyspace_misses"
# Hit rate = hits / (hits + misses)
# Цель: > 90%
# Количество ключей
redis-cli -n 2 DBSIZE
# Использование памяти
redis-cli INFO memory | grep used_memory_human

אנו ממליצים להגדיר התראות כאשר שיעור הפגיעות יורד מתחת ל-85%.

תוצרים עבור עבודת הגדרת Redis

בהזמנת הגדרת Redis סוהר, אנו מספקים:

  1. ביקורת תצורה נוכחית—בדיקת גרסת ביטריקס, PHP, Redis, ניתוח ביצועים.
  2. הכנת שרת Redis—התקנה, תצורה לפי עומס (maxmemory, מדיניות פינוי, שמירה).
  3. אינטגרציה עם ביטריקס—שינוי iblock_id_N ו-redis-cli -n 2 KEYS "BITRIX_CACHE_TAG_*" | head -20 , הפרדת מטמון וסשנים על מאגרים שונים.
  4. בדיקות—מדידת שיעור פגיעות, זמן יצירת דף לפני ואחרי, אימות מטמון מתויג.
  5. תיעוד—תיאור תצורה, הוראות תחזוקה, סקריפטים לניטור.
  6. הדרכה—הראה כיצד לעקוב אחר מדדים ולנקות מטמון באופן עצמאי.
  7. תמיכה—אחריות ל-30 יום לאחר ההשקה: מענה על שאלות, עזרה בכיוונון עדין.

זמנים—מ-2 עד 5 ימים תלוי במורכבות הפרויקט. ההשקעה בהגדרת Redis מחזירה את עצמה תוך 1-2 חודשים על ידי הפחתת עומס השרת. אנו נעריך את הפרויקט שלך—פשוט כתוב לנו. הזמן הגדרת Redis—קבל ייעוץ מהנדס. יש לנו 5 שנות ניסיון בפיתוח 1C-Bitrix, מעל 80 פרויקטים מוצלחים בהאצת אתרים.