Вышел Redis 8.4 с гибридным полнотекстовым и векторным поиском

Спустя более трёх месяцев после выхода предыдущей версии Redis 8.2, распределённое хранилище данных типа «ключ-значение» в оперативной памяти, официально представило версию 8.4, созданную на основе Redis 8.0.
Главная особенность — новая команда FT.HYBRID, которая объединяет полнотекстовый и векторный поиск в рамках одного пути запроса. Предыдущие подходы требовали многоэтапной логики, ручного объединения результатов или использования внешних конвейеров, что увеличивало задержку и снижало точность.
Это позволяет приложениям более естественно выражать намерения, сочетать семантическое и буквальное сопоставление, отдавать приоритет недавнему контексту и использовать фильтры GEO и GEOSHAPE.
Что касается производительности, по словам разработчиков, Redis 8.4 обеспечивает более чем на 30% более высокую пропускную способность для типичных сценариев кэширования — 90% GET и 10% SET — по сравнению с Redis 8.2. Рабочие нагрузки поиска также увеличиваются за счет внедрения многопоточной обработки ввода-вывода для распределенных запросов.
Когда большие наборы результатов распределяются по нескольким сегментам, ответы обрабатываются параллельно, а не последовательно в одном потоке. Это также повышает эффективность агрегированных операций, сокращая время отклика и освобождая рабочие потоки для выполнения логики поиска и оценки.

Влияние параллельного ввода-вывода на производительность запросов RediSearch в Redis 8.4.
Что касается эффективности использования памяти, Redis 8.4 ещё больше сокращает потребление памяти JSON за счёт оптимизации хранения коротких строк и однородных числовых массивов. Короткие строки длиной до семи байт теперь встраиваются, что в обычных случаях сокращает использование памяти примерно на 37 %.
Большие числовые массивы выигрывают ещё больше. Сохраняя тип элемента один раз для всего массива и выбирая наиболее компактное безопасное представление — int, uint, BF16, FP16, FP32 или FP64, — движок может сократить использование памяти на 50–92 % в зависимости от диапазона значений.
Кроме того, в релизе добавлены новые атомарные операции, для которых ранее требовались скрипты на Lua. Строковые ключи теперь поддерживают операции сравнения и установки, а также сравнения и удаления напрямую с помощью новых параметров SET (IFEQ, IFNE, IFDEQ, IFDNE) и новой команды XDELEX. Обновление нескольких ключей также стало проще благодаря MSETEX, который позволяет устанавливать несколько ключей и управлять условиями их истечения в рамках одной операции.
И последнее, но не менее важное: благодаря атомарной миграции слотов значительно улучшилось развёртывание кластеров. В более ранних версиях Redis слоты переносились по одному ключу, что приводило к перенаправлению, сбоям в конвейерах, несогласованности операций с несколькими ключами и потенциальной потере данных в случае сбоя.
При атомарной миграции слотов данные всего слота и текущие изменения в нём переносятся на целевой узел перед передачей права владения. Клиенты продолжают взаимодействовать с исходным узлом во время копирования, что помогает избежать ошибок в процессе миграции и снижает операционные риски.
Для получения дополнительной информации см. объявление. Redis 8.4 теперь доступен через Docker Hub (образы Alpine или Debian), Snap, Homebrew, RPM и APT.
Редактор: AndreyEx
Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.