Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Настройка: Redis кеширование для 1С-Битрикс, под Ubuntu

Просмотров: 9113 Задача: имеем полностью настроенный и оптимально сконфигурированный веб-сервер под управлением Ubuntu 20.04 на котором запущен интернет магазин c 1С-Битрикс. Нужно настроить хранение кеша в Redis хранилище (инструкция совместима и с Debian).
кеширования в Redis для 1С-Битрикс
Redis— это высокопроизводительное хранилище значений ключей в памяти, известное своей гибкостью, производительностью и широкой языковой поддержкой.

Установка и конфигурирование Redis на Ubuntu 22.04. (подойдет и для 18 и для 20. А также для актуальных Debian дитрибутивов)

Для начала установим Redis командой:

sudo apt install redis-server -y

Это позволит загрузить и установить Redis и его зависимости. После этого необходимо внести одно важное изменение в файл конфигурации. Открываем файл конфигурации redis.conf:

sudo nano /etc/redis/redis.conf

Находим строку supervised no и меняем на supervised systemd. Эта директива позволяет использовать систему инициализации systemd для управления Redis как службой, на Ubuntu

На всякий случай устанавливаем "Redis PHP". Может быть необходимо если, например, используете панель управления сервером HestiaCP или обычный LAMP сервер.

sudo apt install php-redis
Если используете HestiaCP— лучше всего устанавливать Redis для конкретной версии php. Например для 8.2.*:
apt install php8.2-redis

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

По умолчанию Redis использует всю доступную память на сервере. Рекомендуется настроить его так, чтобы он занимал около 60-70% оперативной памяти. Это можно сделать, отредактировав строчку в redis.conf следующим образом:

maxmemory 1024mb #Выделено 1Gb
maxmemory-policy volatile-ttl #удалять старый кеш если не помещается

Redis будет открывать новое соединение для каждого запроса. Чтобы избежать замедления работы из-за открытия нового соединения для каждого запроса, необходимо включить keepalive. Для этого измените строку в redis.conf на:

tcp-keepalive 0

Redis также пытается сохранить данные на диск, что может замедлить работу. Рекомендуется закомментировать строки, начинающиеся с save.

#save 900 1
#save 300 10
#save 60 10000

Некоторые параметры, такие как tcp-backlog и maxclients, могут потребоваться отредактировать под конкретные требования проекта и ожидаемую нагрузку:

tcp-backlog 511 #можно увеличить до 65536
maxclients 10000 #максимальное число соединений

В новых версиях redis собственное значение tcp-backlog установлено на 511, и вам потребуется увеличить его, если у вас много соединений.

maxclients - как только лимит будет достигнут, Redis закроет все новые соединения, отправляя. ошибку "достигнуто максимальное количество клиентов".

После внесения всех изменений перезапускаем сервис Redis командой

sudo systemctl restart redis.service

Настройка кеширования в Redis на стороне 1С-Битрикс

На стороне 1С-Битрикс все просто: в директории /bitrix/ открываем файл .settings_extra.php (если его нет создаем) и заменяем все содержимое на:

return array(
    'cache' => array(
        'value' => array(
            'type' => array(
                'class_name' => '\\Bitrix\\Main\\Data\\CacheEngineRedis',
                'extension' => 'redis'
            ),
            'redis' => array(
                'host' => '127.0.0.1',
                'port' => '6379',
            ),
            'sid' => $_SERVER["DOCUMENT_ROOT"] . "#ho"
        ),
    ),
);

Обязательно укажите уникальное значение в качестве sid, например, первые две буквы домена, чтобы избежать перемешивания кешей разных сайтов в Redis.

Убедитесь, что кеширование в Redis успешно настроено, зайдя в админпанель, раздел "Настройки -> Производительность -> Панель производительности". Там должен быть указан текущий способ кеширования, используемый на сайте (скрин в начале статьи).

Видео по настройке Redis на Ubuntu 22.04

Видео входит в одну из серий видеокурса по разработке сайта на 1С-Битрикс.

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 300 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Сайт на готовом решении 1С-Битрикс
от 70 000 руб. от 5-ти дней

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

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 150 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее
Инфоресурс
от 170 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс