Det har aviserats release av den nya versionen av «Valkey 8.1», en gaffel av Redis som föddes efter övergången till en proprietär licens, och som försöker behålla den öppna filosofin i det ursprungliga projektet.
Valkey 8.1 Den innehåller ett stort antal förbättringar och ändringar, vars huvudfokus ligger på prestandaoptimeringar som minskar latensen, ökar minneseffektiviteten och nya modulära möjligheter.
Nya nyckelfunktioner i Valkey 8.1
EN av de viktigaste förändringarna i denna version är fullständig omskrivning av hashtabellen, används i både nyckel-värde datalagring och strukturerade datatyper som Hash, Set och Sorterad uppsättning. Tack vare denna omdesign, En minskning av minnesanvändningen har uppnåtts: 20 byte mindre per nyckel utan TTL, och upp till 30 byte om nyckeln har en definierad livslängd. Dessutom har minskningen av slumpmässig minnesåtkomst lett till en prestandaförbättring på 10 % i enkeltrådade I/O-miljöer.
En annan nyhet i Valkey 8.1 är att iteration över nycklar i operationer som kommandot KEYS eller Nyckelöverföring mellan noder i ett kluster har nu ett cache-förladdningssystem, vilket gör att nästa nyckel är tillgänglig innan bearbetningen börjar. Detta tillvägagångssätt har ökat nyckelsökningshastigheten med 3,5 gånger genom att bättre utnyttja processorcachen.
Flertrådiga I/O- och TLS-förbättringar
Valkey fortsätter sin övergång till en flertrådig I/O-modell. Nu, den TLS-anslutningsbearbetning utförs i separata strömmar, vilket har tredubblat kapaciteten att ta emot nya anslutningar. Funktioner som SSL_pending() och ERR_clear_error() har också isolerats i separata trådar, vilket resulterar i en prestandaökning på 10 % för SET-operationer och en ökning med 22 % för GET-operationer.
Replikeringen har förbättrats, speciellt i miljöer med aktiv TLS, eliminerar redundanta operationer som onödiga kontrollsummor. Detta har resulterat i en 18% förbättring av full synkronisering under disklös replikering och en 47% minskning av kostnaden för kopierings- och skrivoperationer.
Optimering av beställda set och probabilistiska typer
El ZRANK kommando för beställda set har optimerats och Det är nu 45 % snabbare, medan ZADD har antagit SIMD-instruktioner för att uppnå större effektivitet. För probabilistiska datatyper har användningen av HyperLogLog förbättrats för att använda endast 12 KB fast minne, och användningen av AVX2-instruktioner har gjort det möjligt att multiplicera prestandan för PFMERGE- och PFCOUNT-operationer med upp till 12 gånger och BITCOUNT med upp till 5 gånger.
Oavbruten aktiv defragmentering och mer kontroll över register
El aktivt defragmenteringssystem har också förbättrats för att undvika blockeringar eller förseningar. Nu varar varje defragmenteringscykel bara 500 mikrosekunder, och en anti-svältstrategi har implementerats för att förhindra att dessa uppgifter skjuts upp på grund av långvarig verksamhet.
Har introducerats Nya konfigurationsalternativ för postformatering, inklusive anpassade tidsformat och ett nytt COMMANDLOG-läge som loggar långa förfrågningar och svar. Dessutom har kommandot LATENCY LATEST utökats med nya mätvärden, vilket ger bättre överblick över inspelade topp- och volymlatenser.
Nya funktioner, moduler och support
Valkey låter dig nu utföra SET IFEQ-operationen, vilket villkorar skrivningen av en nyckel till det aktuella värdet. Också Modulärt stöd för skriptmotorer introduceras, öppnar möjligheten att använda alternativa språk till Lua genom anpassade moduler.
I den här versionen också flera moduler debuterar:
- Sökmodul (Google): Sökmotor för vektorlikhet, idealisk för maskininlärningsfall som kräver låg latens och hög genomströmning.
- JSON-modul (AWS): tillåter direkt manipulation av JSON-dokumentfragment och undviker fullständig bearbetning av innehållet på klienten.
- Bloom Filter Module (AWS): Implementering av Bloom-filter, användbart för att bestämma eventuellt medlemskap av ett element i en uppsättning, med probabilistisk effektivitet
Slutligen, om du är intresserad av att kunna veta mer om det, kan du konsultera detaljerna i följande länk.