Что это такое
Redis — сервер структур данных в памяти. Его часто называют кешем, но это слишком узко: Redis умеет хранить строки, хеши, списки, множества, упорядоченные множества, потоки и другие структуры, поверх которых строят счетчики, очереди, сессии, блокировки, ограничители частоты запросов и быстрые ответы для приложений.
Репозиторий redis/redis существует на GitHub с 2009 года. Основной язык — C, официальный сайт — redis.io. В современных метаданных проект описан как Redis с открытым кодом, а ветка разработки меняется вместе с текущей линией продукта; условия лицензирования и конкретную редакцию важно проверять под свою задачу.
Что внутри
Внутри — сервер Redis, клиентская утилита redis-cli, модули данных, тесты, сборка, документация по запуску и исходный код сетевого сервера. Важная идея Redis в том, что операции над структурами данных выполняются рядом с данными, поэтому многие задачи требуют меньше лишних походов в основную базу.
Минимальный сценарий через redis-cli
Пример показывает базовую модель: записать значение с временем жизни, прочитать его и увеличить счетчик. Именно такие маленькие операции часто становятся строительными блоками кеша и ограничителей частоты запросов.
redis-cli PING
redis-cli SET session:42 active EX 3600
redis-cli GET session:42
redis-cli INCR pageviews:home
Где он полезен
Redis полезен в веб-приложениях, очередях фоновых задач, счетчиках реального времени, ограничении частоты запросов, хранении сессий, временных токенах, сценариях публикации и подписки и быстрых индексах. Он особенно хорош там, где миллисекунды важны, а данные можно держать в памяти или восстанавливать из основного источника.
При этом Redis часто работает не вместо основной базы, а рядом с ней. PostgreSQL или MySQL остаются источником истины, а Redis ускоряет чтение, координацию и временное состояние.
Сильные стороны и ограничения
Сильная сторона Redis — скорость, простая модель команд и богатые структуры данных. Его легко начать использовать в маленьком месте, а затем расширять сценарии: от кеша до stream-обработки и распределенных координационных задач.
Ограничение — эксплуатационная дисциплина. Данные в памяти требуют контроля размера, политики вытеснения, настроек сохранения на диск, репликации, безопасности и понимания, что будет при перезапуске. Redis быстрый, но быстрый слой состояния легко превратить в скрытую критическую зависимость.