Wiki · Технологии разработки
Redis
Redis – это хранилище данных, которое держит данные в оперативной памяти и поэтому отвечает быстрее обычной базы. На сайтах Redis используют как кеш, хранилище сессий пользователей и очередь фоновых задач.
Типичный повод с ним познакомиться: в день распродажи каталог открывается по несколько секунд, база данных не успевает отвечать на тысячи одинаковых запросов, и разработчик предлагает «поставить Redis». Посмотрим, что это даст и что придётся учитывать.
Redis создал итальянский программист Сальваторе Санфилиппо (antirez) в 2009 году, сейчас его развивает компания Redis. В документации Redis указано, что типичные операции выполняются быстрее миллисекунды.
Ключи, срок жизни и сохранение на диск
Redis хранит пары «ключ и значение». Ключом может быть, например, «цена товара 1024», значением сама цена. У каждой записи можно задать срок жизни, после которого она удалится сама:
SET price:1024 4990 EX 300 GET price:1024
Первая команда сохраняет цену на 300 секунд, вторая читает её. Через пять минут запись исчезнет, и сайт возьмёт свежую цену из основной базы. Кроме простых значений, Redis хранит списки, множества и отсортированные наборы, поэтому на нём делают очереди задач и рейтинги.
Данные живут в памяти, поэтому важен вопрос, что будет при перезапуске сервера. В Redis есть два способа сохранения на диск: снимки данных через заданные промежутки времени (RDB) и журнал всех операций записи (AOF). Можно включить оба или не сохранять ничего. Для кеша последний вариант нормален: кеш соберётся заново. Для данных, которых больше нигде нет, сохранение обязательно. Если держать в Redis единственную копию заказов или заявок без записи на диск, первый же перезапуск их сотрёт.

Для чего Redis на сайте
- Кеш. Готовые куски страниц и результаты тяжёлых запросов отдаются из памяти, а не собираются заново. Что такое кеш и какие виды бывают, рассказываем в статье Кэш.
- Сессии. Авторизация и корзина пользователя. Особенно полезно, когда сайт работает на нескольких серверах сразу.
- Очереди. Отправка писем, выгрузки в 1С и обработка картинок уходят в фон, и посетитель не ждёт.
- Счётчики и ограничения. Например, не больше пяти попыток входа с одного адреса за минуту.
Bitrix Framework, на котором работает 1С-Битрикс, умеет хранить в Redis и кеш, и сессии. Для кеша нужно PHP-расширение redis, настройка делается в конфигурации сайта.
Redis рядом с основной базой
На сайтах Redis обычно работает рядом с MySQL или PostgreSQL, а не вместо них.
| Redis | MySQL, PostgreSQL | Memcached | |
|---|---|---|---|
| Где данные | В памяти, по настройке сохраняет на диск | На диске | Только в памяти |
| Что хранят | Кеш, сессии, очереди, счётчики | Товары, заказы, клиентов | Кеш |
| После перезапуска | Зависит от настроек сохранения | Данные на месте | Кеш пустой |
Лицензия и Valkey
До версии 7.2 включительно Redis распространялся под открытой лицензией BSD. В марте 2024 года компания объявила, что с версии 7.4 Redis выходит под лицензиями RSALv2 и SSPLv1. В ответ Linux Foundation 28 марта 2024 года запустила Valkey, продолжение Redis 7.2.4 под лицензией BSD. С Redis 8 появилась третья лицензия на выбор, открытая AGPLv3.
Для владельца сайта практический итог такой: в облаках и у хостингов вы встретите и Redis, и Valkey. Например, в Yandex Cloud управляемый сервис называется Managed Service for Valkey. Для кеша и сессий сайта Valkey обычно подключается так же, как Redis, но совместимость с вашей CMS всё равно проверяют.
Что даёт Redis и за чем придётся следить
- Каталог и личный кабинет отвечают быстрее, база меньше нагружена. Но только если тормозила именно база: иногда виноват один медленный запрос или тяжёлые картинки, поэтому сначала ищут причину, разбор в статье Скорость сайта.
- Для 1С-Битрикс подключение Redis делается настройкой, переписывать код сайта не нужно.
- Появляется ещё один сервис, за которым надо следить. Если Redis упадёт, сайт может начать работать с ошибками.
- Объём ограничен памятью сервера, поэтому для Redis задают лимит и правило, какие данные удалять при нехватке места. Без лимита он займёт всю память, и первым пострадает сам сайт.
Redis рассчитан на доверенную среду: документация прямо советует не открывать его в интернет. Обычно он доступен только с сервера сайта и закрыт паролем. Для этого нужен VPS или хостинг, который даёт Redis, подробнее в статье Хостинг.

Как узнать, есть ли Redis на проекте
Проще всего спросить разработчика, что и зачем хранится в Redis. Если хочется проверить самому, есть несколько признаков. В 1С-Битрикс тип хранилища для кеша и сессий прописан в файле настроек .settings.php, и там будет указано redis. Если проект собран в Docker, в файле compose.yaml появится отдельный сервис redis. В облаке или панели VPS Redis обычно виден как отдельная служба или управляемая база.
Установка, версия, память и подключение Redis к сайту
Как поднять Redis в Docker рядом с сайтом?
Добавьте в compose.yaml отдельный сервис на официальном образе redis: сайт будет обращаться к нему по имени сервиса внутри сети проекта. Порт 6379 наружу не публикуйте. Если в Redis лежит что-то кроме кеша, подключите том для данных и включите сохранение на диск, иначе пересоздание контейнера всё обнулит.
Как установить Redis на Windows?
Официально Redis под Windows не поддерживается, поэтому на своём компьютере его запускают в WSL 2 или в Docker Desktop. Для разработки этого хватает. Рабочий сайт всё равно держат на Linux-сервере.
Как узнать версию Redis на сервере?
Выполните redis-cli INFO server и найдите строку redis_version. По номеру заодно понятна лицензия: до 7.2 включительно BSD, у 7.4 RSALv2 и SSPLv1, а с восьмой версии к ним добавилась AGPLv3. Если номер 7.2 и ниже, проверьте, не пора ли обновиться или перейти на Valkey.
Redis или Memcached: что взять для кеша?
Для одного кеша годятся оба. Redis выбирают с запасом: в нём можно держать ещё сессии, очереди и счётчики, а при нужде сохранять данные на диск. Memcached устроен проще и хранит только кеш, который пропадает при перезапуске. Последнее слово за CMS: берут то, что она подключает штатно.
Valkey или Redis: что выбрать в облаке?
Для кеша и сессий сайта разницы почти нет: Valkey вырос из Redis 7.2.4 и работает с теми же клиентскими библиотеками. Он остался под открытой BSD, поэтому часть облаков, например Yandex Cloud, предлагает именно его. Перед переездом убедитесь, что модуль кеширования вашей CMS с ним дружит.
Как подключить Redis к 1С-Битрикс?
На сервер ставят сам Redis и PHP-расширение redis, а в .settings.php указывают Redis хранилищем для кеша, сессий или того и другого. Код сайта не трогают. После переключения проверьте, что авторизация и корзина не сбрасываются, а в Redis появились ключи сайта.
Что будет с сайтом, если Redis упадёт?
Если Redis просто перезапустился без сохранения на диск, кеш соберётся заново, а сессии пропадут: посетителей разлогинит, корзины могут опустеть. Если служба недоступна совсем, сайт, который на неё настроен, может отдавать ошибки, пока её не поднимут, а очереди писем и выгрузок встанут. Поэтому Redis ставят на мониторинг наравне с самим сайтом.
Как ограничить память Redis, чтобы он не задушил сайт?
В конфигурации задают потолок maxmemory и правило вытеснения maxmemory-policy. Для чистого кеша подходит allkeys-lru: при нехватке места Redis удаляет ключи, к которым давно не обращались. Сессии и очереди под таким правилом могут пропасть, поэтому их держат в отдельном экземпляре с другим правилом.
Когда небольшому сайту пора подключать Redis?
Когда встроенного файлового кеша CMS уже мало: выросла посещаемость, сайт разнесли на несколько серверов или появились фоновые задачи вроде выгрузок в 1С. Для визитки и небольшого каталога Redis чаще всего лишняя служба в поддержке, выигрыш в скорости будет незаметен.
Если проект уже работает на Redis, берём его на доработку и техническую поддержку. Новый проект можно заказать в разделе Разработка сайтов.
Источники
- Redis: What is Redis?
- Документация Redis: Persistence
- Документация Redis: Security
- Redis: Licenses
- Блог Redis: «Redis Adopts Dual Source-Available Licensing» и «Redis is now available under the AGPLv3 open source license»
- Linux Foundation: «Linux Foundation Launches Open Source Valkey Community»
- Документация 1С-Битрикс: «Кеширование» и «Сессии»
См. также: Скорость сайта, Хостинг, Кэш, PostgreSQL.
Остались вопросы по теме «Redis»?
Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.
Отвечает по темеСергей ЧерняковWeb-разработчикНад статьёй работали
Услуги
Услуги по теме
Посчитайте стоимость проекта за 2 минуты
Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.
