utgÄvan av databashanteraren , som tillhör klassen NoSQL-system. Redis erbjuder funktioner liknande Memcached för lagring av data i nyckel/vÀrde-format, med stöd för strukturerade dataformat som listor, hash och mÀngder, samt möjlighet att köra server-sidiga skript pÄ Lua. Projektkoden Àr licensierad under BSD. TillÀggsmoduler som erbjuder utökade funktioner för företagsanvÀndare, sÄsom RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, har sedan förra Äret under den proprietÀra licensen RSAL. Utvecklingen av öppna versioner av dessa moduler under AGPLv3-licensen fortsÀtter av projektet .
Till skillnad frÄn Memcached erbjuder Redis bestÀndig lagring av data pÄ disk och garanterar databasens integritet vid plötsliga avbrott. Projektets kÀllkod distribueras under BSD-licensen. Klientbibliotek finns tillgÀngliga för de flesta populÀra sprÄk, inklusive Perl, Python, PHP, Java, Ruby och Tcl. Redis stödjer transaktioner som tillÄter att en grupp kommandon utförs i ett steg, vilket garanterar konsistens och sekvens (kommandon frÄn andra förfrÄgningar kan inte blanda sig) vid exekveringen av ett givet kommando-set, och i hÀndelse av problem gör det möjligt att Ängra Àndringar. All data cachas helt i RAM.
För att hantera data tillhandahÄlls kommandon som inkrement/ dekrement, 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 pÄ disk och loggning av förÀndringar pÄ disk. I det andra fallet garanteras fullstÀndig bevarande av alla förÀndringar. Master-slave datagenerering pÄ flera servrar Àr möjlig och sker i icke-blockerande lÀge. En publikation/prenumeration-meddelandefunktion Àr ocksÄ tillgÀnglig, dÀr en kanal skapas som sprider meddelanden till prenumererande kunder.
Nyckel , som lagts till i Redis 6.0:
- Som standard erbjuds det nya protokollet RESP3, men anslutningen inleds i RESP2-lÀge och klienten vÀxlar till det nya protokollet endast om den nya kommandot HELLO anvÀnds vid överenskommelsen av anslutningen. RESP3 gör det möjligt att direkt returnera komplexa datatyper utan behov av att konvertera vanliga arrayer pÄ klientsidan och separerar de returnerade typerna.
- Stöd för Ätkomstkontrollistor (), som gör det möjligt att exakt definiera vilka operationer som kan utföras av klienten och vilka som inte kan. ACL ger ocksÄ möjlighet att skydda sig mot eventuella fel under utveckling; till exempel kan en hanterare som endast utför operationen BRPOPLPUSH nekas att utföra andra operationer, och om en FLUSHALL-anrop av misstag glöms bort i den arbetskoden under felsökning, kommer detta inte att orsaka nÄgra problem. Implementeringen av ACL medför inga extra kostnader och pÄverkar praktiskt taget inte prestandan. För ACL finns ocksÄ grÀnssnittsmoduler som möjliggör skapande av egna autentiseringsmetoder. För att se alla registrerade övertrÀdelser av ACL finns kommandot 'ACL LOG'. För att generera oförutsÀgbara sessionsnycklar har kommandot 'ACL GENPASS' lagts till, vilket anvÀnder HMAC baserat pÄ SHA256.
- Support för att kryptera kommunikationskanalen mellan klienten och servern.
- cachelagring av data pÄ klientsidan. För att synkronisera cachen pÄ klientsidan med databasen finns det tvÄ lÀgen: 1. Komma ihÄg nycklar pÄ servern som tidigare begÀrts av klienten för att informera om borttagning av relevans i klientens cachepost. 2. Mekanismen 'broadcasting', dÀr klienten prenumererar pÄ vissa nyckelprefix och servern meddelar den vid förÀndringar av nycklar som faller under dessa prefix. Fördelen med 'broadcasting'-lÀget Àr att inget extra minne anvÀnds pÄ servern för att lagra en karta över vÀrden som Àr cachade pÄ klientsidan, men nackdelen Àr det ökade antalet meddelanden som sÀnds.
- Meddelandehanteraren Disque, vilket gör det möjligt att anvÀnda Redis för att hantera meddelandeköer, har flyttats frÄn grunden till .
- Tillagd , en proxy för Redis-serverkluster som möjliggör att klienten arbetar med flera Redis-servrar som om de vore en enda instans. Proxyn kan dirigera förfrÄgningar till noder med nödvÀndiga data, multiplexera anslutningar, omkonfigurera klustret vid upptÀckta nodfel och utföra förfrÄgningar som omfattar flera noder.
- API:et för modulskrivning har förbÀttrats avsevÀrt, vilket i praktiken har förvandlat Redis till ett ramverk för att skapa system i form av modulÀra tillÀgg.
- ReplicationslÀget har implementerats, dÀr RDB-filer omedelbart tas bort efter att de har anvÀnts.
- Protokollet för replication PSYNC2 har förbÀttrats, vilket möjliggör oftare partiell resynkronisering genom att öka chansen att upptÀcka förskjutningen som Àr gemensam för repliken och huvudservern.
- Laddningstiderna för RDB-filer har pÄskyndats. Beroende pÄ filens innehÄll ökar hastigheten med mellan 20 och 30 %. Kommandot INFO körs betydligt snabbare med mÄnga anslutna kunder.
- Ett nytt kommando STRALGO har lagts till med implementering av komplexa strÀngbehandlingsalgoritmer. För nÀrvarande Àr endast en algoritm, LCS (longest common subsequence), tillgÀnglig, vilket kan vara anvÀndbart vid jÀmförelse av RNA- och DNA-sekvenser.
KĂ€lla: opennet.ru
