Zoeken op website

Redis 8.4 lanceert met hybride full-text + vectorzoekfunctie


Redis 8.4 in-memory dataopslag voegt hybride full-text en vectorzoekfunctionaliteit toe, wat zorgt voor meer dan 30% hogere doorvoer voor caching- en zoekwerkbelastingen.

Drie maanden na de vorige 8.2-release heeft Redis, een gedistribueerde in-memory key-value datastore, officieel versie 8.4 uitgebracht, voortbouwend op de basis die door Redis 8.0 is gelegd.

De belangrijkste functie is de nieuwe FT.HYBRID-opdracht, die full-text en vectorzoekopdrachten samenbrengt in één enkele queryroute. Eerdere benaderingen vereisten logica in meerdere stappen, handmatige score-samenvoeging of externe pijplijnen, wat allemaal de vertraging verhoogde en de precisie verminderde.

Dit stelt applicaties in staat om intenties op een meer natuurlijke manier uit te drukken, semantische en letterlijke overeenkomsten te combineren, recente context te prioriteren en GEO- en GEOSHAPE-filters toe te passen.

Wat betreft prestaties, volgens ontwikkelaars levert Redis 8.4 meer dan 30% hogere doorvoer voor typische caching-scenario's—90% GET en 10% SET—vergeleken met Redis 8.2. Ook zoekwerkbelastingen zien verbeteringen dankzij de introductie van multi-threaded I/O-verwerking voor gedistribueerde queries.

Wanneer grote resultaatsets over meerdere shards worden verdeeld, worden reacties nu gelijktijdig verwerkt in plaats van via een enkele thread te worden geleid. Ook aggregatiebewerkingen profiteren hiervan, wat de reactietijden verkort en de werkerthreads vrijhoudt om zoek- en scoringslogica uit te voeren.

Impact van parallelle I/O op de RediSearch-queryprestaties in Redis 8.4.

Wat geheugen efficiëntie betreft, vermindert Redis 8.4 het JSON-geheugengebruik verder door de opslag van korte tekenreeksen en homogene numerieke arrays te optimaliseren. Korte tekenreeksen van maximaal zeven bytes worden nu inline opgeslagen, wat in veel gevallen het geheugengebruik met ongeveer 37% vermindert.

Grote numerieke arrays profiteren nog meer. Door het elementtype eenmaal per array op te slaan en de veiligste en meest compacte representatie te kiezen—int, uint, BF16, FP16, FP32 of FP64—kan de engine het geheugenverbruik met 50% tot 92% verminderen, afhankelijk van het waardenbereik.

Bovendien voegt de release ook nieuwe atomische bewerkingen toe die voorheen Lua-scripting vereisten. String-sleutels ondersteunen nu direct compare-and-set en compare-and-delete via nieuwe SET-opties (IFEQ, IFNE, IFDEQ, IFDNE) en het nieuwe XDELEX-commando. Multi-sleutelupdates worden ook eenvoudiger met MSETEX, waarmee meerdere sleutels kunnen worden ingesteld en hun vervalvoorwaarden conditioneel in één bewerking kunnen worden beheerd.

Last but not least, clusterimplementaties zien grote verbeteringen dankzij Atomic Slot Migration. Eerdere Redis-versies migreerden slots sleutel voor sleutel, wat resulteerde in redirects, kapotte pipelines, inconsistente multi-key operaties en mogelijk dataverlies in geval van fouten.

Bij Atomic Slot Migration wordt in plaats daarvan alle gegevens van een complete slot en de lopende wijzigingen ervan overgedragen aan de bestemmingsnode voordat een enkele eigendomsoverdracht plaatsvindt. Clients blijven tijdens het kopiëren met de bronnode communiceren, wat helpt om fouten tijdens de migratie te voorkomen en het operationele risico te verminderen.

Voor meer informatie, zie de aankondiging. Redis 8.4 is nu beschikbaar via Docker Hub (Alpine- of Debian-images), Snap, Homebrew, RPM en APT.

Beeldcredits: Redis