BotBlocker ускоряет тяжёлые проверки посетителей (PTR, DNSBL, базы ботов, облачные запросы) с помощью внешнего кеша. Поддерживаются два популярных решения — Redis и Memcached — но в системе может быть активен только один из них одновременно. Разберём различия и что лучше выбрать для WordPress и безопасности.
Общее
- Оба кеша — сверхбыстрые key-value хранилища в оперативной памяти.
- Снижают нагрузку на MySQL, DNS и облачные API, ускоряют проверки с сотен миллисекунд до 1-3 мс.
- Оба поддерживаются PHP и всеми крупными хостингами.
- BotBlocker использует любой из них для кеша результатов проверок посетителей, но одновременно только один.
Важно понимать, что оба инструмента решают одну задачу — хранение временных данных в памяти для быстрого доступа. Разница проявляется в деталях: насколько гибко можно управлять данными, что происходит при перезапуске сервера и какой запас функций нужен конкретному проекту. Для BotBlocker это означает, что выбор кеша влияет не только на скорость проверки посетителей, но и на то, как система поведёт себя при нештатных ситуациях — например, при перезагрузке сервера или росте трафика.
Redis: плюсы и минусы
Плюсы:
- Поддержка сложных структур данных (массивы, множества, очереди, pub/sub).
- Есть возможность сохранения данных на диск (Persistence) — после рестарта не теряет всё содержимое.
- Гибкое управление TTL, atomic операции.
- Подходит для будущих расширений (очереди, аналитика, сложная логика).
- Используется для object cache, сессий, очередей в WordPress.
Минусы:
- Чуть больше расход памяти на объект.
- Немного сложнее для администрирования при большом количестве настроек.
- При простых задачах «get/set» незначительно уступает по скорости второму варианту (но обычно это несущественно).
Memcached: плюсы и минусы
Плюсы:
- Крайне простой и лёгкий, ориентирован только на key-value, идеально быстрый в «get/set».
- Минимум накладных расходов по памяти.
- Очень легко масштабируется (кластеризация).
- «Из коробки» доступен на большинстве хостингов.
Минусы:
- Нет сохранения данных — после перезапуска весь кеш теряется.
- Нет сложных структур (только строка => строка/объект).
- Нет поддержки очередей, pub/sub, аналитики.
Почему только один кеш в BotBlocker?
- Архитектурно BotBlocker рассчитывает, что кеш работает однозначно: никаких конфликтов, гонок и дублирующихся ключей.
- Одновременная работа двух бекендов невозможна — выбирается только один через настройки или окружение.
- Переключение требует очистки кеша, рестарта службы и повторной инициализации для корректности.
Это сделано намеренно. Когда два разных хранилища работают параллельно, есть риск получить устаревшие или противоречивые данные по одному и тому же IP-адресу или сигнатуре бота. BotBlocker строит логику проверок так, чтобы каждый запрос давал однозначный и предсказуемый результат. Один бекенд — один источник истины.
Когда выбирать Redis для BotBlocker
- Нужна гибкость, расширяемость, возможность хранить сложные структуры, persist данных.
- Уже используете этот инструмент для object cache, сессий, очередей в WordPress.
- Планируете масштабировать WordPress или BotBlocker, использовать продвинутую аналитику.
Когда выбирать Memcached для BotBlocker
- Максимальная простота, «лёгкий» кеш, нет необходимости в сложных структурах и сохранении данных.
- Уже используете его для object cache и хотите унифицировать кеширование на сервере.
- Предпочитаете минимальное администрирование.
Практика и реальные кейсы
- Redis — универсальное решение для проектов «с запасом на будущее», больших сайтов, мультитенантных решений.
- Memcached — идеален для классических, «прямых» кешей с максимальной скоростью, когда после рестарта потеря кеша не критична.
На практике большинство хостингов, которые предоставляют управляемый WordPress-хостинг, уже включают один из двух вариантов в базовый пакет. Если ваш хостер предлагает оба — смотрите на то, что уже используется другими компонентами сайта. Подключать второй инструмент только ради BotBlocker нет смысла: лучше использовать тот, который уже запущен и настроен. Это снизит нагрузку на сервер и упростит обслуживание.
Настройка и подключение
Подключение кеша к BotBlocker выполняется через настройки плагина. Там нужно указать хост, порт и при необходимости пароль. После сохранения настроек плагин автоматически начнёт записывать результаты проверок в выбранный бекенд. Никаких дополнительных действий не требуется — плагин сам управляет ключами, временем жизни записей и очисткой устаревших данных.
Если кеш недоступен — например, служба упала или неверно указан порт — BotBlocker продолжает работать в штатном режиме, просто без ускорения. Это важно: безопасность сайта не пострадает, но часть запросов будет обрабатываться медленнее до момента восстановления соединения с бекендом.
FAQ
Можно ли использовать Redis и Memcached одновременно?
Нет — BotBlocker работает только с одним бекендом кеша за раз.
Что безопаснее?
Оба безопасны при грамотной настройке (локальный сокет или защищённый доступ). Первый поддерживает persist, что может быть плюсом для расследований инцидентов.
Что делать, если есть выбор?
Для современных сайтов чаще рекомендуют Redis, но если нужна простота или есть ограничения по хостингу — выбирайте Memcached.
Влияет ли выбор кеша на точность проверок?
Нет. Оба хранилища дают одинаково точные результаты проверок — разница только в скорости записи и доступности данных после перезапуска сервера.
Документация PHP: расширение Redis