Bitrix framework позволяет использовать следующие способы хранения кеша

Обновлено: 04.07.2024

Можно ли сделать сайты в разной кодировке по системе многосайтовости? Нет. Все сайты на одном ядре должны быть в одной кодировке.

Bitrix Framework позволяет использовать следующие способы хранения кеша: как в файлах, так и с использованием memcached как с использованием memcached,
так и APC

Файлы, к которым нельзя обращаться напрямую, должны: содержать в начале следующий код <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

Когда лучше начинать использовать кеширование: при разработке веб-сайта после того как обеспечена наиболее оптимальная работа с базой данных с выключенным кэшированием

Оптимизировать работу с БД можно: правильным проектированием структуры данных, выбор связей и их реализация средствами системы инфоблоков

Файл init.php: может быть общим для всех сайтов
содержит подключение дополнительных функций
каждый сайт может иметь свой init.php
ошибка в файле приведёт к потере работоспособности всего сайта
Содержит инициализацию обработчиков событий

Для написания быстрого кода разработчик должен: проектировать структуру данных исходя из последующих задач по выборке и фильтрации данных, а не только из простоты интерфейса
понимать, какие системные действия выполняют АПИ функции
использовать кеширование везде, где это необходимо ограничивать объём данных в кеше знать, как работают инструменты отладки в Битриксе

При программировании в Bitrix Framework нельзя: Модифицировать модули и ядро Обращаться напрямую к базе данных

Оптимизацию сайта необходимо начинать с поиска основных узких мест

Основные ошибки в программировании, вызывающие проблемы в производительности: при выборке разделов без необходимости включается подсчет числа элементов
чтобы получить число элементов делается полная выборка с подсчетом средствами php
в result_modifier для каждого элемента дополнительные поля выбираются дополнительным запросом
при написании своих компонентов не ограничивается кеш методом SetResultCacheKeys

Telegram каналы и чаты для web разработчика

  • 17 ноября 2017
    Пример реализации консольного скрипта с подключением ядра 1С-БитриксДавно известно, что ряд операций выносят в отдельные php файлы и запускают из консоли, так как это зачастую удобнее, быстрее, да и в принципе на эти операции не нужен браузер.
  • 24 июля 2017
    MySQL ошибка: InnoDB Error Fetch of persistent statistics requested for tableПри разработке одного проекта, часто стали вылетать ошибки базы или просто бесконечная загрузка страницы. После попыток запустить сайт и перезапуска локального сервера - результат ноль.
  • 19 июля 2017
    Битрикс отправка писем с вложениями без танцев с бубномОтправка писем с аттачем в bitrix довольно распространенная задача, например, отсылать пользователям договора, анкеты, выписки и другие файлы. В интернете довольно много различных способов решения задачи.
  • 13 июня 2018 в 17:08
    Galinaced FrancisbaxVX : По моему мнению Вы пошли ошибочным путём.
  • 31 мая 2018 в 15:03
    Igorpi IgorpiNP : Номер не пройдет!
  • 31 мая 2018 в 12:58
    Galinaced FrancisbaxVX : Я извиняюсь, но, по-моему, Вы допускаете ошибку. Пишите мне в PM.
  • 31 мая 2018 в 08:32
    Alexeyced AlexeycedYO : Какие слова. фантастика

О проекте

Проект BX Cert - портал web разработчиков. Данный ресурс будет полезен как новичкам в разработке, так и более опытным web разработчикам.

По всем вопросам Вы можете писать на почту:

Актуальные вакансии

Мы собираем и храним информацию по всем вакансия web разработчиков и программистов PHP, Python и многих других специалистов.

Компании ФГБУ РФИ Минприроды России требуется Разработчик на 1С - Битрикс (Веб разработчик) в Москве
19 ноября 2021

Компании Фитнес-Бутик требуется Программист Bitrix CMS/Битрикс в Москве
19 ноября 2021

Увидеть ответ на вопрос: Если вам необходимо разместить на сайте собственный функционал, наиболее правильным с точки зрения Bitrix Framework будет:, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

При разработке шаблона компонента разработчик

Увидеть ответ на вопрос: При разработке шаблона компонента разработчик, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Папки и файлы минимально необходимые для работы компонента с языковыми фразами:

Увидеть ответ на вопрос: Папки и файлы минимально необходимые для работы компонента с языковыми фразами:, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Если информация отдается из кэша до тех пор, пока она не поменяется в базе данных и кэш сбросится автоматически, то это:

Увидеть ответ на вопрос: Если информация отдается из кэша до тех пор, пока она не поменяется в базе данных и кэш сбросится автоматически, то это:, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Функция для регистрации обработчиков событий, расположенных в модулях

Увидеть ответ на вопрос: Функция для регистрации обработчиков событий, расположенных в модулях, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Для обеспечения внешней авторизации в продукте «1С-Битрикс» необходимо установить обработчик события

Увидеть ответ на вопрос: Для обеспечения внешней авторизации в продукте «1С-Битрикс» необходимо установить обработчик события, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Для реализации внешней авторизации необходимо создать обработчик соответствующего события в файле

Увидеть ответ на вопрос: Для реализации внешней авторизации необходимо создать обработчик соответствующего события в файле, можно купив подписку в которую входит данные ответы: 🚀

Купить подписку и ознакомить какие ответы на тесты 1с битрикс входят в нее, можно на главной странице

Данная статья — это не научный прорыв, а лишь помощник, чтобы быстрее понять, как работает стандартный функционал в Bitrix.

Давайте представим, что в разделе каталога у нас 150 запросов к БД. Вроде бы немного при условии, если в один момент обращение к разделу происходит одним пользователем?

При одновременном обращении к разделу 200-т пользователей количество запросов равняется 200 * 150 = 30 000

Кеширование помогает снизить нагрузку на БД и сервер в целом.

Не судите за то, что я использую старое ядро в примере. Суть данной статьи показать, как это работает и потребности темы полностью покрываются.

2. Простое кеширование

Результат выполнения кода — это переменная $arCurSection со значениями полученными из кеша или запросов к БД.

Проблема данного метода в том, что если что-то изменится в инфоблоке, то результат будет нерелевантным. Решение данной проблемы описано в пункте 3.

3. Тегированный кеш

Для того, чтобы решить проблему описанную в пункте 2, надо почистить директорию с кешем /iblock/catalog (путь не относительно корня сайта, а относительно папки с кешем) в момент добавления, изменения, удаления элементов инфоблока и связанных с ним сущностей, которые выводит наш компонент.

Для того, чтобы не изобретать «городушки» для сброса кеша при изменениях, был придуман тегированный кеш.

Для того, чтобы месту хранения кеша присвоить кеш используем это:

Сброс кеша по тегу можно осуществить следующим способом:

В итоге нам нужно лишь в нужный момент (навесить на события) сделать сброс кеша по тегу.

Например, в стандартных компонентах, использующих инфоблок, используется тег вида «iblock_id_17» и по этому тегу вызывается метод сброса кеша, который вызывается в методах добавления, изменения, удаления элемента инфоблока.

Метод из ядра битрикс использующий ClearByTag:

4. Пример нестандартного использования кеша в каталоге

Когда мы знаем, как работает кеширование, то можем легко доработать кеширование у стандартного компонента каталога.

Косяк стандартного решения — при изменении какого-либо элемента сбрасывается весь кеш (элементы, разделы).

Чтобы не заставлять систему лишний раз делать запросы, производить расчеты и набирать кеш, можно для головных разделов предусмотреть отдельный кеш. Вывести из под общего тега-инфоблока.

Тут единственная трудность в том, что бы хорошенечко подумать, в каких местах стоит так сделать.

5. Заключение

Смысл статьи не в научном открытии или какой-то доселе неведомой технологии, а демонстрации простоты решений.

Да, я коснулся лишь малой части кеширования. Для простоты восприятия пусть будет этот минимум.

Если у вас есть примеры, как можно использовать данный стандартный функционал, то пишите комментарии. Если есть примеры нестандартных решений — делитесь опытом.

Читайте также: