Проверяем тип хранения кэша — файлы, memcached или Redis
Хочу себе такие же кнопкиЧто вы получите от этого занятия
Вы быстро поймёте, какой способ кэширования использует ваш сайт на Битриксе, почему от этого зависит скорость загрузки страниц и нагрузка на сервер, а также как переключиться между файловым кэшем, Memcached и Redis без потери данных. Понимание этих механизмов позволит вам правильно подобрать тип хранилища под текущий трафик и заранее избежать «тормозов» при росте магазина.
1. Почему тип кэша важен
| Хранилище | Как хранит данные | Скорость чтения/записи | Потребление RAM | Примечания |
|---|---|---|---|---|
| Файлы | На диске в виде .php/.html* файлов | Медленнее (доступ к SSD/HDD) | Низкое (только файлы) | Простой, не требует отдельного сервиса |
| Memcached | Оперативная память, ключ‑значение | Очень быстро (мгновенно) | Высокое (весь кэш в RAM) | Нет постоянного хранилища, при перезапуске данные исчезают |
| Redis | Оперативная память + возможность сохранять на диск (RDB/AOF) | Сравнима с Memcached, но с дополнительными структурами (sorted sets, hashes) | Высокое + диск для снапшотов | Поддерживает устойчивость к перезапуску, более гибок |
Если ваш магазин уже обслуживает сотни запросов в секунду, переход от файлов к Memcached или Redis может сократить время отклика в 2‑5 раз. Если же у вас небольшая витрина, файлы могут быть достаточны и экономичны.
2. Как проверить, какой кэш используется сейчас
2.1. Через административную панель Битрикса
- Откройте Настройки → Настройки продукта → Кеширование.
- Обратите внимание на параметр «Тип кэширования» – там будет указано
file,memcachedилиredis.
Подсказка: если пункт «Тип кэширования» скрыт, значит в
php.iniзаданы пользовательские константы, и их нужно искать в файлах конфигурации.
2.2. Через файлы конфигурации
- /bitrix/.settings.php – часто содержит массив
$CACHE_TYPE. Пример:
return array(
'cache' => array(
'type' => 'memcached', // или 'file', 'redis'
'memcached' => array(
'host' => '127.0.0.1',
'port' => 11211,
),
),
);
- /bitrix/php_interface/dbconn.php – иногда в нём задаются константы
BX_CACHE_TYPE.
2.3. Через консоль сервера
# Проверка наличия Memcached
ps aux | grep memcached
# Проверка наличия Redis
ps aux | grep redis-server
Если процесс запущен, значит сервис установлен и, вероятно, используется.
2.4. Через запросы к API
Битрикс умеет отдавать информацию о кэше через метод COption::GetOptionString. Выполните в cron‑скрипте:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
echo COption::GetOptionString("main", "cache_type");
Вывод будет file, memcached или redis.
3. Как переключить тип кэша
3.1. Подготовка сервера
| Шаг | Что делаем | Команда |
|---|---|---|
| 1 | Устанавливаем Memcached | apt-get install memcached |
| 2 | Устанавливаем Redis | apt-get install redis-server |
| 3 | Проверяем, что порты 11211 (Memcached) и 6379 (Redis) открыты | netstat -tlnp | grep -E "11211|6379" |
| 4 | Настраиваем автозапуск | systemctl enable memcached && systemctl start memcached systemctl enable redis-server && systemctl start redis-server |
Важно: на 🏰 VDSina вы можете арендовать Hi‑CPU‑сервер, где уже предустановлены оба сервиса. Подробнее о тарифах см. на сайте хостинга VDSina.
3.2. Изменение конфигурации Битрикса
- Откройте
/bitrix/.settings.php. - Замените массив
cacheна нужный тип. Пример для Redis:
return array(
'cache' => array(
'type' => 'redis',
'redis' => array(
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
'password' => '',
),
),
);
- Сохраните файл и очистите текущий кэш командой:
php /bitrix/modules/main/tools/clear_cache.php
3.3. Тестирование после переключения
- Откройте страницу магазина в браузере, включите Network в DevTools и проверьте
Time→Waiting (TTFB). - Сравните с показателями до переключения.
- Если время отклика не изменилось, проверьте логи
memcached.logилиredis.logна наличие ошибок.
4. Плюсы и минусы каждого типа
| Тип | Плюсы | Минусы |
|---|---|---|
| Файлы | • Не требует дополнительного софта • Работает даже на дешевых VPS |
• Доступ к диску медленнее RAM • При большом количестве запросов может «засоряться» |
| Memcached | • Самый быстрый доступ к кэшу • Простой протокол, низкая нагрузка |
• Нет постоянного хранилища • Ограничен только простыми строками (нет структур) |
| Redis | • Поддерживает сложные структуры (hashes, sets) • Возможность сохранения на диск (RDB/AOF) • Публичные команды для управления кэшем |
• Требует больше RAM • Сложнее в настройке, особенно при репликации |
5. Когда какой тип выбирать
| Сценарий | Рекомендация |
|---|---|
| Новичок, небольшая витрина (< 10 000 посетителей в сутки) | Файлы – минимум расходов, достаточно скорости |
| Средний магазин (10 000‑100 000 запросов/сек) | Memcached – простота и высокая производительность |
| Большой каталог, сложные запросы, требуются структуры (например, топ‑продукты) | Redis – гибкость и возможность восстановления после перезапуска |
| Требуется «горячий» кэш с постоянством | Redis с включённым RDB/AOF |
| Ограниченный бюджет, но нужен быстрый кэш | Memcached на недорогом VPS (например, 🏰 VDSina VDS‑тариф) |
6. Как мониторить состояние кэша
| Инструмент | Что показывает | Как подключить |
|---|---|---|
| memcached-tool | Статистика по использованию памяти, количеству запросов, hit/miss | memcached-tool 127.0.0.1:11211 stats |
| redis-cli INFO | Подробные метрики (used_memory, hits, misses, evicted_keys) | redis-cli INFO |
| Bitrix Monitor | Встроенные графики загрузки кэша | В админке → «Мониторинг» → «Кеш» |
| Grafana + Prometheus | Визуализация в реальном времени | Установить экспортеры memcached_exporter и redis_exporter |
Регулярный мониторинг помогает вовремя увеличить объём RAM или добавить реплику, если hit‑rate падает ниже 90 %.
7. Частые ошибки и как их избежать
| Ошибка | Причина | Как исправить |
|---|---|---|
| Кеш не очищается после переключения | Оставшиеся файлы в /bitrix/cache/ |
Удалить вручную: rm -rf /bitrix/cache/* |
| Redis не принимает соединения | Фа bind в redis.conf ограничивает IP |
Установить bind 0.0.0.0 или добавить ваш IP |
| Memcached «переполняется» | Размер -m слишком мал |
Увеличить параметр -m 512 в /etc/memcached.conf |
| Ошибка «Cache type not supported» | В php.ini указана неизвестная константа |
Убедиться, что в .settings.php правильный тип и что расширения php-memcached/php-redis установлены |
8. Лучшие практики
- Устанавливайте лимит памяти для Memcached/Redis, чтобы они не «съедали» весь RAM сервера.
- Включайте резервное сохранение в Redis (RDB) – это позволит восстановить кэш после падения.
- Не храните большие бинарные файлы (изображения, видео) в кэше – они лучше находятся в CDN.
- Регулярно проверяйте hit‑rate; если он падает, возможно, кэш слишком маленький или запросы слишком разнообразны.
- Разделяйте кэш для разных проектов (используйте разные порты/базы), чтобы один «тяжёлый» сайт не вытеснил кэш другого.
Практика для закрепления
-
Определите текущий тип кэша на вашем сайте, используя только консольные команды. Какие файлы или процессы вы нашли?
-
Смоделируйте переключение: в локальном окружении создайте файл
.settings.phpс типомmemcached. Затем замените его наredisи очистите кэш. Сравните время отклика двух вариантов (можно воспользоватьсяabилиwrk). -
Настройте мониторинг: установите
redis-cliи выполнитеINFO. Запишите значенияkeyspace_hitsиkeyspace_misses. Какой процент hit‑rate получился? -
Решите конфликт: ваш сервер уже использует Memcached, а вы хотите добавить Redis для отдельного проекта. Как правильно настроить конфигурацию, чтобы оба сервиса работали параллельно, не конфликтуя по портам?
-
Сценарий отказа: представьте, что 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 блог для бизнеса