В битриксе давно появилась возможность хранить кэш в redis. Это достаточно удобно и быстро работает. Но если включить как указано в документации - https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=105&LESSON_ID=14026 , то есть добавление в файл .setting_extra.php следующего кода
'cache' => array(
'value' => array(
'type' => array(
'class_name' => '\Bitrix\Main\Data\CacheEngineRedis',
'extension' => 'redis'
),
'redis' => array(
'host' => 'redis',
'port' => '6379',
),
'sid' => $_SERVER["DOCUMENT_ROOT"] . "#01"
),
),
то могут появиться ошибки вида
Undefined class constant 'SERIALIZER_IGBINARY'
Это связано с тем, что по умолчанию используется компактная сериализация данных в бинарном виде и она отключена.
Решение
Решение достаточно простое, необходимо установить несколько расширений и подключить их. Проходим авторизацию на сервере как пользователь root и выполняем команды
Активация acpu
Переходим в директорию с настроками php и активируем расширение acpu, для этого переименовываем файл
mv 40-apcu.ini.disabled 40-apcu.ini
Установка igbinary
Запускаем установку расширения, при возникновении вопросов, просто нажимаем Enter
pecl install igbinary
После установки необходимо подключить его, для этого добавляем в конец файла /etc/php.d/bitrixenv.ini строчку
extension=igbinary.so
Установка redis
Запускаем установку расширения.
pecl install redis
При возникновении вопросов, просто нажимаем Enter, кроме одного.
enable igbinary serializer support? [no]:
Нужно ввести yes и нажать Enter.
После установки необходимо подключить его, для этого добавляем в конец файла /etc/php.d/bitrixenv.ini строчку
extension=redis.so
Далее необходимо применить изменения
systemctl restart httpd
После этого можно посмотреть вывод php, в которых нужно обратить внимание на подключение расширений и некоторые значения
Также можно в командной строке выполнить код, в результате не должно быть ошибок
var_dump(\Redis::SERIALIZER_IGBINARY);
Если все прошло нормально, то можно переходить включать хранение кэша в redis. Не забудьте задать лимиты на количество используемой памяти в конфигурационном файле редиса.