Налаштування керованого кешу 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування керованого кешу 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування керованого кешу 1С-Бітрікс

Керований кеш (managed cache) у Бітрікс — механізм тегованого кешування, при якому кожен кешований об'єкт позначається тегами, а скидання відбувається за тегом, а не за TTL. Це вирішує головну проблему стандартного файлового кешу: коли в інфоблоці з 10 000 елементів оновлюється один запис, скидається весь кеш інфоблоку — всі компоненти, що використовують його дані, починають працювати «з нуля».

Як влаштований керований кеш

Клас \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);
}

При виклику \Bitrix\Main\TaggedCache::clearByTag('iblock_id_5') скидаються лише дані, позначені цим тегом — решта компонентів продовжують працювати з кешу.

Налаштування Redis як бекенду

Для продакшну рекомендується Redis — він швидший за memcached при роботі з тегами та підтримує персистентність. Конфігурація в /bitrix/.settings.php:

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

Параметр serializer => IGBINARY важливий: він знижує розмір серіалізованих PHP-об'єктів на 30–50% порівняно зі стандартним serialize().

Кейс: інвалідація кешу при частих оновленнях

Інтернет-магазин з погодинним обміном з 1С: щогодини оновлюються ціни та залишки 500–2000 позицій. При стандартному кеші з тегом IBLOCK_N весь кеш інфоблоку скидався 24 рази на добу. Після переходу на керований кеш з гранулярними тегами виду iblock_element_ID скидання відбувається лише для змінених елементів. Сторінки незмінених товарів продовжують віддаватися з кешу.

Що потрібно налаштувати

Правильне налаштування керованого кешу включає: вибір і конфігурацію бекенду (Redis/memcached), перевірку версії Бітрікс (D7 API, модуль main версії 20+), ревізію компонентів на використання застарілого CBitrixComponent::getCache(), перехід на ManagedCache там, де потрібна гранулярна інвалідація. Термін робіт — 1–3 дні залежно від кількості компонентів і наявності Redis на сервері.