Запуск Redis 8.4 с гибридным поиском по полному тексту и векторовым поиском
In-memory хранилище данных Redis 8.4 добавляет гибридный полнотекстовый и векторный поиск, обеспечивая более чем на 30% большую пропускную способность для задач кэширования и поиска.
Спустя более трёх месяцев после предыдущего выпуска версии 8.2, Redis, распределённое хранилище данных «ключ-значение» в оперативной памяти, официально представил версию 8.4, развивая основы, заложенные в Redis 8.0.
Основной особенностью является новая команда FT.HYBRID, которая объединяет полнотекстовый и векторный поиск в одном запросе. Ранее для этого требовалась многозадачная логика, ручное объединение оценок или внешние конвейеры, что увеличивало задержку и снижало точность.
Это позволяет приложениям более естественно выражать намерения, сочетать семантическое и буквальное сопоставление, придавать приоритет недавнему контексту и использовать фильтры GEO и GEOSHAPE.
С точки зрения производительности, по словам разработчиков, Redis 8.4 обеспечивает более чем на 30% большую пропускную способность для типичных сценариев кэширования—90% GET и 10% SET—по сравнению с Redis 8.2. Нагрузки на поиск также выигрывают за счет внедрения многопоточной обработки ввода-вывода для распределённых запросов.
Когда большие наборы результатов распределяются по нескольким шардам, ответы теперь обрабатываются одновременно, а не через один поток. Выгоду получают и агрегатные операции: снижается время ответа, а рабочие потоки остаются свободными для выполнения поиска и оценки результатов.
Что касается эффективности использования памяти, Redis 8.4 дополнительно снижает потребление памяти JSON за счет оптимизации хранения коротких строк и однородных числовых массивов. Короткие строки до семи байт теперь встроены, что сокращает использование памяти примерно на 37% в типичных случаях.
Большие числовые массивы выигрывают ещё больше. Храня тип элемента один раз для всего массива и выбирая самое компактное безопасное представление — int, uint, BF16, FP16, FP32 или FP64 — движок может сократить использование памяти на 50%–92%, в зависимости от диапазона значений.
Более того, в этом выпуске добавлены новые атомарные операции, которые ранее требовали использования скриптов Lua. Ключи-строки теперь поддерживают операции сравнения и установки (compare-and-set) и сравнения и удаления (compare-and-delete) напрямую с помощью новых опций SET (IFEQ, IFNE, IFDEQ, IFDNE) и новой команды XDELEX. Обновления нескольких ключей также становятся проще с MSETEX, который позволяет одновременно устанавливать несколько ключей и условно управлять их сроком действия в одной операции.
И последнее, но не менее важное: развертывание кластера значительно улучшается благодаря миграции слотов по атомарному принципу. Ранее версии Redis мигрировали слоты по ключу за ключом, что приводило к перенаправлениям, разрывам конвейеров, несогласованным операциям с несколькими ключами и потенциальной потере данных в случае сбоев.
Атомарная миграция слота вместо этого переносит все данные слота и его текущие изменения на целевой узел перед выполнением единственного передачи владения. Клиенты продолжают взаимодействовать с исходным узлом во время копирования, что помогает избежать ошибок в процессе миграции и снижает операционные риски.
Для получения дополнительной информации см. объявление. Redis 8.4 уже доступен через Docker Hub (образы Alpine или Debian), Snap, Homebrew, RPM и APT.
Изображение предоставлено: Redis

