Прописываем Redis в .settings_extra.php для кэша и сессий
Хочу себе такие же кнопкиВведение
Вы уже заметили, что ваш сайт на Битриксе начинает «запотевать» при росте трафика, а запросы к базе данных тормозят. Самый быстрый способ снять эту нагрузку — перенести кэш и хранение сессий в Redis. В этом уроке вы узнаете, как правильно прописать Redis в файле .settings_extra.php, чтобы Битрикс использовал его как кэш‑слой и хранилище сессий. Мы разберём каждый параметр, покажем, где их ставить, и почему это экономит время и ресурсы сервера.
1. Почему именно Redis?
| Характеристика | Redis | Файловый кэш Битрикса | MySQL‑сессии |
|---|---|---|---|
| Скорость | Операции в памяти ≈ мкс | Доступ к файлам ≈ мс | Запросы к БД ≈ мс‑сек |
| Масштабируемость | Горизонтальное шардирование | Ограничено диском | Плохая при большом числе запросов |
| Поддержка TTL | Автоматическое истечение | Нужно писать скрипты | Не реализовано |
| Транзакционность | atomic операции | Нет | Нет |
Кратко: Redis — это in‑memory хранилище, которое умеет быстро отдавать данные и автоматически удалять устаревшие записи. Для сайта с большим количеством товаров, фильтров и пользовательских сессий это значит меньше запросов к базе и более плавную работу.
2. Подготовка сервера VDS
-
Установите Redis (если он ещё не установлен). На большинстве Linux‑дистрибутивов это делается одной командой:
sudo apt-get update && sudo apt-get install redis-server -
Проверьте, что сервис запущен:
sudo systemctl status redis-server -
Откройте порт 6379 в файерволе, если планируете обращаться к Redis с другого сервера (обычно не требуется, если всё на одном VDS).
-
Настройте пароль (по‑умолчанию Redis работает без аутентификации). Откройте
/etc/redis/redis.confи найдите строку:# requirepass foobaredУберите
#и заменитеfoobaredна надёжный пароль, напримерMyStrongPass123!. -
Перезапустите сервис:
sudo systemctl restart redis-server
Важно: храните пароль в безопасном месте и не публикуйте его в репозиториях.
3. Структура файла .settings_extra.php
Файл .settings_extra.php находится в корне сайта (рядом с bitrix/.settings.php). Он позволяет переопределять любые параметры без изменения базовых настроек. Пример базовой структуры:
<?php
return array(
'cache' => array(
// параметры кэша
),
'session' => array(
// параметры сессий
),
);
Ниже мы заполним эти секции нужными настройками для Redis.
4. Подключение Redis в качестве кэша
4.1. Основные параметры кэша
| Параметр | Описание | Пример значения |
|---|---|---|
| type | Тип кэша. Для Redis — redis. |
'redis' |
| redis_host | IP‑адрес/доменное имя сервера Redis. | '127.0.0.1' |
| redis_port | Порт, на котором слушает Redis (по‑умолчанию 6379). | 6379 |
| redis_db | Номер базы данных Redis (0‑15). | 1 |
| redis_password | Пароль, указанный в redis.conf. |
'MyStrongPass123!' |
| cache_ttl | Время жизни кэша в секундах (по‑умолчанию 3600). | 7200 |
4.2. Пример кода
<?php
return array(
'cache' => array(
'type' => 'redis',
'redis_host' => '127.0.0.1',
'redis_port' => 6379,
'redis_db' => 1,
'redis_password' => 'MyStrongPass123!',
// Время жизни кэша в секундах (можно переопределять в отдельных модулях)
'cache_ttl' => 7200,
),
);
4.3. Почему redis_db = 1?
Битрикс использует базу 0 для своих внутренних нужд (например, системных настроек). Выделяя отдельную базу 1 для кэша, мы изолируем её от потенциальных конфликтов с другими данными.
5. Подключение Redis для сессий
5.1. Параметры сессий
| Параметр | Описание | Пример значения |
|---|---|---|
| session_handler | Тип обработчика сессий. Для Redis — redis. |
'redis' |
| redis_host | IP‑адрес/доменное имя сервера Redis. | '127.0.0.1' |
| redis_port | Порт Redis. | 6379 |
| redis_db | Номер базы данных для сессий (обычно 2). | 2 |
| redis_password | Пароль. | 'MyStrongPass123!' |
| session_ttl | Время жизни сессии в секундах. | 14400 (4 часа) |
5.2. Пример кода
<?php
return array(
'session' => array(
'session_handler' => 'redis',
'redis_host' => '127.0.0.1',
'redis_port' => 6379,
'redis_db' => 2,
'redis_password' => 'MyStrongPass123!',
// Время жизни сессии (можно менять в настройках сайта)
'session_ttl' => 14400,
),
);
5.3. Как это работает
Когда пользователь заходит на сайт, Битрикс генерирует ID сессии и сохраняет его в Redis. При следующем запросе сервер читает сессию из памяти, а не из файловой системы, что ускоряет процесс аутентификации и загрузки пользовательских данных.
6. Объединённый файл .settings_extra.php
Чтобы не дублировать код, объединим оба блока в один файл:
<?php
return array(
// Кэш
'cache' => array(
'type' => 'redis',
'redis_host' => '127.0.0.1',
'redis_port' => 6379,
'redis_db' => 1,
'redis_password' => 'MyStrongPass123!',
'cache_ttl' => 7200,
),
// Сессии
'session' => array(
'session_handler' => 'redis',
'redis_host' => '127.0.0.1',
'redis_port' => 6379,
'redis_db' => 2,
'redis_password' => 'MyStrongPass123!',
'session_ttl' => 14400,
),
);
Совет: храните пароль в отдельном файле
config_local.phpи подключайте его черезrequire_once. Так вы избежите случайного коммита пароля в репозиторий.
7. Проверка работы
-
Кэш: В админке Битрикса откройте любой инфоблок, включите «Кешировать запросы» и проверьте, что в Redis появляется ключ, например
bx_cache_.... Команда:redis-cli -a MyStrongPass123! KEYS "bx_cache_*" -
Сессии: Откройте сайт в двух разных браузерах, выполните вход и проверьте, что в Redis появляются ключи вида
PHPREDIS_SESSION:.... Команда:redis-cli -a MyStrongPass123! KEYS "PHPREDIS_SESSION:*" -
Логи: В
bitrix/logsнайдите файлcache.log. Если всё настроено правильно, ошибок о невозможности записать кэш не будет.
8. Частые проблемы и их решения
| Проблема | Причина | Решение |
|---|---|---|
| “Connection refused” | Redis не запущен или порт закрыт | sudo systemctl start redis-server; откройте порт в firewall |
| “NOAUTH Authentication required.” | Неправильный пароль в .settings_extra.php |
Проверьте redis_password и requirepass в redis.conf |
| “Cache not working” | type указан неверно (например, memcached) |
Убедитесь, что в секции cache type = redis |
| “Session data lost after reboot” | Redis настроен без persistence | В redis.conf включите appendonly yes или save 900 1 |
| “Too many connections” | Ограничение maxclients слишком низкое |
Увеличьте maxclients в redis.conf и перезапустите сервис |
9. Лучшие практики
| Практика | Почему это важно |
|---|---|
Разделяйте базы данных (redis_db = 1 для кэша, 2 для сессий) |
Избегаем конфликтов и упрощаем очистку |
Устанавливайте TTL (cache_ttl, session_ttl) |
Автоматически освобождаем память от устаревших записей |
Включайте persistence (appendonly yes) |
Защищаемся от потери данных при падении сервера |
Мониторьте нагрузку (redis-cli INFO) |
Видим, сколько памяти использует Redis, и можем масштабировать VDS |
| Не храните чувствительные данные в кэше | Кэш — временное хранилище, не шифруется автоматически |
10. Практика для закрепления
- Установите Redis на ваш VDS, задайте пароль и включите
appendonly. Проверьте, что сервис работает без ошибок. - Создайте файл
.settings_extra.phpсогласно примерам выше, но используйте разные пароли для кэша и сессий (можно задать в переменных окружения). - Отключите файловый кэш в админке Битрикса и включите только Redis‑кэш. Сравните время загрузки страницы до и после (используйте Chrome DevTools → Network).
- Смоделируйте падение: остановите Redis (
sudo systemctl stop redis-server), выполните несколько запросов к сайту, затем запустите Redis снова. Как отреагирует система? Что нужно поправить, чтобы избежать 500‑ошибок? - Настройте мониторинг: установите
redis-cli monitorв отдельном терминале и выполните несколько действий на сайте (вход, выход, просмотр товаров). Запишите, какие команды приходят в Redis и почему.
11. Полезные ссылки
- Официальная документация Redis — https://redis.io/documentation{:rel="nofollow"}
- Руководство по работе с
.settings_extra.phpв Битриксе — https://dev.1c-bitrix.ru/api_help/main/reference/csettings_extra.php{:rel="nofollow"} - VDS от 🏰 VDSina (подойдёт для установки Redis) — Виртуальный сервер от VDSina{:rel="nofollow"}
Поздравляем! Вы теперь умеете быстро и надёжно подключать Redis к вашему сайту на Битриксе, что позволит сократить время отклика и выдержать большие нагрузки без дополнительных расходов на серверные ресурсы. Применяйте полученные знания на практике, и ваш магазин будет работать как швейцарские часы. 🚀
CamZamZam - онлайн фото с вебкамеры с эффектами
Cartoon Network: игры с персонажами
Чат рулетка в 2026: будущие функции
Эксперт по доменным стратегическим решениям
Хостинг для e-commerce проектов
Как играть в слоты
Как настроить CDN для сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как оптимизировать производительность сайта с хостингом Host.bg
Как выбрать правильный хостинг для вашего сайта
Какие бывают ЛОР болезни у детей
Кассовые терминалы с оплатой картами
LOL куклы витрина детская
Лучшие видеорегистраторы для водителей
Онлайн QR-код сканер
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Основы настройки веб-хостинга: что вам нужно знать
Партнёрская программа без блога: как получать трафик из Telegram
Профессиональные хитрости для пользователей хостинга Host.bg
Регистрация ИП в Москве для иностранных граждан
Сравнение хостинга Host.bg с другими провайдерами
Субтитры — нет, уши — включены: погружение в английский за 5 минут
Сумки с бусинами
Техника для строительства загородных трасс
ТОП-10 VPS для разработчика: рейтинг серверов под рабочие задачи
WordPress блог для бизнеса