25 ноября 2025 года состоялся выпуск СУБД Redis 8.4. Решение относится к классу NoSQL‑систем. Проект Redis предоставляет функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов‑обработчиков на языке Lua. Исходный код решения написан на языке C и опубликован на GitHub под лицензией AGPLv3.

СУБД Redis поддерживает транзакции, позволяющие выполнить за один шаг группу команд, гарантируя непротиворечивос��ь и последовательность (команды от других запросов не могут вклиниться) выполнения заданного набора команд, а в случае проблем позволяя откатить изменения. Все данные в полном объёме кэшируются в оперативной памяти. Клиентские библиотеки доступны для большинства популярных языков, включая Perl, Python, PHP, Java, Ruby и Tcl.

Для управления данными в Redis предоставляются такие команды, как инкремент/декремент, стандартные операции над списками и множествами (объединение, пересечение), переименование ключей, множественные выборки и функции сортировки.

В Redis поддерживается два режима хранения: периодическая синхронизация данных на диск и ведение на диске лога изменений. Во втором случае гарантируется полная сохранность всех изменений. Возможна организация master‑slave репликации данных на несколько серверов, осуществляемая в неблокирующем режиме. Доступен также режим обмена сообщениями «публикация/подписка», при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.

Redis 8.4 доступен через Docker Hub (образы Alpine или Debian), Snap, Homebrew, RPM и APT.

Основные изменения и дополнения в Redis 8.4:

  • добавлен гибридный полнотекстовый и векторный поиск, обеспечивая более чем на 30% более высокую пропускную способность для рабочих нагрузок кэширования и поиска;

  • новая команда FT.HYBRID, которая объединяет полнотекстовый и векторн��й поиск в едином пути запроса. Предыдущие подходы требовали многошаговой логики, ручного объединения оценок или внешних конвейеров, что увеличивало задержку и снижало точность. Это позволяет приложениям более естественно выражать намерения, комбинировать семантическое и буквальное сопоставление, приоритизировать недавний контекст и использовать фильтры GEO и GEOSHAPE;

  • новая версия обеспечивает более чем на 30% более высокую пропускную способность для типичных сценариев кэширования — 90% GET и 10% SET — по сравнению с Redis 8.2. Поисковые нагрузки также демонстрируют рост благодаря внедрению многопоточной обработки ввода-вывода для распределённых запросов;

  • когда большие наборы результатов распределены по нескольким шардам (shards), ответы теперь обрабатываются параллельно, а не направляются через один поток. Агрегационные операции также получили оптимизацию, сокращая время отклика и освобождая рабочие потоки для выполнения логики поиска и оценки;

  • снижено потребление памяти JSON за счёт оптимизации хранения коротких строк и однородных числовых массивов. Короткие строки длиной до семи байт теперь встроены (inlined), что в типичных случаях сокращает использование памяти примерно на 37%;

  • улучшена работа с большими числовыми массивами. Сохраняя тип элемента один раз для каждого массива и выбирая наиболее компактное безопасное представление — int, uint, BF16, FP16, FP32 или FP64 — движок может сократить использование памяти на 50–92% в зависимости от диапазона значений;

  • добавлены новые атомарные операции, которые ранее требовали написани�� скриптов на Lua. Элементы String key теперь поддерживают операции сравнения и установки (recovery and set) и сравнения и удаления (recovery and delete) напрямую, благодаря новым опциям SET (IFEQ, IFNE, IFDEQ, IFDNE) и новой команде XDELEX. Обновление нескольких ключей также упрощается благодаря MSETEX, который может устанавливать несколько ключей и управлять условиями их истечения в рамках одной операции;

  • кластерные развёртывания значительно улучшены благодаря атомарной миграции слотов. В предыдущих версиях Redis слоты мигрировались по ключам, что приводило к перенаправлениям, сбоям в работе конвейеров, несогласованным операциям с несколькими ключами и потенциальной потере данных в случае сбоев. Вместо этого атомарная миграция слотов переносит все данные слота и его текущие изменения на целевой узел перед выполнением единой передачи владения. Клиенты продолжают взаимодействовать с исходным узлом во время копирования, что помогает избежать ошибок в процессе миграции и снизить операционный риск.