Utgåvan av databashanteraren Redis 7.0.

Redis 7.0 har släppts och tillhör klassen av NoSQL-system. Redis erbjuder funktioner för datalagring i nyckel/värde-format, med utökad support för strukturerade dataformat som listor, hash-mappar och mängder, samt möjligheten att köra server-side skript på Lua. Projektets kod distribueras under BSD-licens. Ytterligare moduler som erbjuder utökade funktioner för företagsanvändare, såsom RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, har sedan 2019 distribuerats under den proprietära RSAL-licensen. Utvecklingen av öppna alternativ till dessa moduler under AGPLv3-licens har försökt fortsätta av projektet GoodFORM, som på sista tiden har varit i stagnering.

Till skillnad från minneslagringssystem som Memcached, erbjuder Redis beständig datalagring på disk och garanterar databasens integritet vid krasch. Projektets källkoder sprids under BSD-licens. Klientbibliotek är tillgängliga för de flesta populära språk, inklusive Perl, Python, PHP, Java, Ruby och Tcl. Redis stödjer transaktioner, som möjliggör genomförandet av en mängd kommandon i ett steg, vilket garanterar konsistens och sekvens (kommandon från andra förfrågningar kan inte avbryta) i utförandet av en given uppsättning kommandon, och ger också möjlighet att ångra ändringar vid problem. All data cachas i sin helhet i minnet.

För datahantering finns kommandon som inkrementera/Decrementera, standardoperationer för listor och mängder (förening, snitt), omdöpning av nycklar, multipla urval och sorteringsfunktioner. Två lagringslägen stöds: periodisk synkronisering av data till disk och loggning av ändringar på disk. I det andra fallet garanteras fullständig bevarande av alla ändringar. Master-slave replicering av data kan ordnas på flera servrar, vilket sker i icke-blockerande läge. Det finns även ett meddelandeutbytesläge för "publicering/prenumeration", där en kanal skapas och meddelanden från den distribueras till prenumeranter.

Nyckelförändringar i Redis 7.0:

  • Stöd för funktioner som körs på servern har lagts till servern. Till skillnad från tidigare stödda skript på Lua är funktionerna inte bundna till applikationen och syftar till att implementera ytterligare logik som utökar serverns kapabiliteter. Funktionerna bearbetas oavbrutet med data och kopplas till databasen snarare än till applikationen, inklusive replikering och lagring i beständig lagring.
  • En andra version av ACL har föreslagits, vilket möjliggör datatillgångshantering baserat på nycklar och tillåter definition av olika uppsättningar av åtkomstrider för kommandon med möjlighet att binda flera selektorer (uppsättningar av rättigheter) till varje användare. Varje nyckel kan kopplas till specifika rättigheter, till exempel kan tillgången begränsas till endast läsning eller skrivning av en viss delmängd av nycklar.
  • En fungerande sektionerad (sharded) implementering av publicerings- och abonnemangsparadigmet (Publish-Subscribe) har tillhandahållits, där meddelandet skickas till en specifik nod som är kopplad till meddelandekanalen, varefter detta meddelande omdirigeras till de andra noderna inom sektionen (shard). Kunder kan prenumerera på meddelanden från kanalen, både genom att ansluta till huvudnoden och till sekundära noder i sektionen. Hantering görs med hjälp av kommandona SSUBSCRIBE, SUNSUBSCRIBE och SPUBLISH.
  • Stöd för hantering av underkommandon har lagts till i de flesta kontexter.
  • Nya kommandon har lagts till:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • COMMAND DOCS, COMMAND LIST.
    • LATENCY HISTOGRAM.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • CLIENT NO-EVICT.
    • ACL DRYRUN.
  • Möjlighet att bearbeta flera konfigurationer i ett enda CONFIG SET/GET-anrop har tillhandahållits.
  • Nya alternativ har lagts till i verktyget redis-cli: "—json", "-2", "—scan", "—functions-rdb".
  • Som standard är tillgång för klienter till inställningar och kommandon som påverkar säkerhet (t.ex. kommandon DEBUG och MODULE är avstängda, ändringar av konfigurationer med PROTECTED_CONFIG-flagg är förbjudna) avstängd. Utskrift av kommandohistorik med konfidentiella uppgifter i redis-cli har upphört.
  • En stor mängd optimeringar har införts för att öka prestanda och minska minnesförbrukningen. Till exempel har minnesförbrukningen vid aktivering av klusterläge, vid utförande av copy-on-write-operationer och vid arbete med hash och zset-nycklar minskat avsevärt. Logiken för att skriva data till disk (anrop av fsync) har förbättrats. Antalet nätverkspaket och systemanrop vid sändning av svar till klienten har minskat. Effektiviteten i replikationen har ökats.
  • Sårbarheten CVE-2022-24735 i Lua-skriptkörningsmiljön har åtgärdats, vilket gör det möjligt att ersätta sin egen Lua-kod och få den att köras i kontexten av en annan användare, inklusive en med högre privilegier.
  • Sårbarheten CVE-2022-24736 har åtgärdats, vilket möjliggör att processen redis-server kraschar på grund av dereferensiering av en nullpekare. Attacken utförs genom att ladda speciellt utformade Lua-skript.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster