izdanje DBMS-a , koji pripada klasi NoSQL sustava. Redis pruža funkcije slične Memcached-u za pohranu podataka u formatu ključ/vrijednost, proširene podrškom za strukturirane formate podataka, kao što su liste, hash-evi i skupovi, kao i mogućnošću izvršavanja skripti na strani poslužitelja napisane u Lua jeziku. Izvorni kod projekta pod BSD licencom. Dodatni moduli, koji nude proširene mogućnosti za korporativne korisnike, kao što su RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, od prošle godine pod vlasničkom licencom RSAL. Razvoj otvorenih verzija tih modula pod AGPLv3 licencom nastavljen je projektom .
Za razliku od Memcached-a, Redis osigurava trajnu pohranu podataka na disku i jamči očuvanje baze podataka u slučaju nenamjernog isključivanja. Izvorni kod projekta distribuira se pod BSD licencom. Klijentske biblioteke dostupne su za većinu popularnih jezika, uključujući Perl, Python, PHP, Java, Ruby i Tcl. Redis podržava transakcije, što omogućava izvršavanje grupe naredbi u jednom koraku, jamčeći dosljednost i sekvencijalnost (naredbe iz drugih zahtjeva ne mogu se umiješati) izvršenja zadanog skupa naredbi, a u slučaju problema omogućava povrat promjena. Svi podaci u potpunosti se predmemoriraju u RAM-u.
Za upravljanje podacima pružene su naredbe poput inkrementiranja/decrementiranja, standardne operacije nad listama i skupovima (spajanje, presjek), preimenovanje ključeva, višestruka ispitivanja i funkcije sortiranja. Podržavaju se dva načina pohrane: periodična sinkronizacija podataka na disk i vođenje dnevnika promjena na disku. U drugom slučaju jamči se potpuno očuvanje svih promjena. Moguća je organizacija master-slave replikacije podataka na više poslužitelja, koja se provodi u neblokirajućem modu. Dostupan je i način razmjene poruka
Ključne , dodani u Redis 6.0:
- Zadano je novi protokol RESP3, no uspostava veze započinje u režimu RESP2, a klijent se prebacuje na novi protokol samo ako je pri dogovoru veze korištena nova naredba HELLO. RESP3 omogućava izravno vraćanje složenih tipova podataka bez potrebe za konverzijom općih nizova na strani klijenta, dijeleći vraćene tipove.
- Podrška za liste kontrole pristupa (), koji omogućuju točno određivanje koje operacije klijent može izvesti, a koje ne. ACL također omogućuju zaštitu od mogućih grešaka tijekom razvoja; na primjer, obradi koja izvršava samo operaciju BRPOPLPUSH može se zabraniti izvođenje drugih operacija, što znači da slučajni poziv FLUSHALL u radnom kodu neće uzrokovati probleme. Implementacija ACL-a ne uzrokuje dodatne troškove i praktično ne utječe na performanse. Za ACL su također pripremljeni sučeljski moduli koji omogućuju kreiranje vlastitih metoda autentifikacije. Za pregled svih zabilježenih kršenja ACL-a predviđena je naredba „ACL LOG“. Za generiranje nepredvidljivih sesijskih ključeva dodana je naredba „ACL GENPASS“, koja koristi HMAC temeljen na SHA256.
- Podrška za šifriranje komunikacijskog kanala između klijenta i poslužitelja.
- keširanje podataka na strani klijenta. Za usklađivanje keša na strani klijenta s stanjem Baze podataka dostupna su dva režima: 1. Zapamti na poslužitelju ključeve koje je klijent prethodno zatražio, kako bi ga obavijestio o gubitku aktualnosti zapisa u klijentskom kešu. 2. Mehanizam „broadcasting“, pri čemu se klijent prijavljuje na određene prefikse ključeva, a poslužitelj ga obavještava u slučaju promjene ključeva koji spadaju pod te prefikse. Prednost režima „broadcasting“ je u tome što na poslužitelju ne troši dodatnu memoriju za pohranu karte predmemoriranih vrijednosti na strani klijenta, dok je mana povećanje broja poslanih poruka.
- Brokerska usluga poruka Disque, koja omogućava korištenje Redisa za obradu redova poruka, izuzeta je iz osnovnog skupa u .
- Dodano , proxy za Redis klaster servera, koji omogućava klijentima da rade s više Redis servera kao s jednim primjerkom. Proxy može usmjeravati zahtjeve prema čvorovima s potrebnim podacima, multiplikovati veze, rekonfigurirati klaster u slučaju otkrivanja kvarova čvorova, te izvršavati zahtjeve koji obuhvaćaju više čvorova.
- Significantly improved API za pisanje modula, u suštini prelagođen Redis u okvir koji omogućava izradu sustava u obliku modularnih dodataka.
- Implementiran je način replikacije, pri čemu se RDB datoteke odmah brišu nakon što su korištene.
- Poboljšan je PSYNC2 protokol za replikaciju, što je omogućilo češće izvođenje djelomične resinkronizacije, povećavajući šanse za otkrivanje pomaka koji je zajednički za replikat i majstor.
- Ubrzano učitavanje RDB datoteka. Ovisno o sadržaju datoteke, ubrzanje iznosi od 20 do 30%. Značajno je ubrzano izvršavanje komande INFO kada ima velik broj povezanih klijenata.
- Dodana je nova komanda STRALGO s implementacijom složenih algoritama obrade nizova. Trenutno je dostupan samo jedan algoritam LCS (najdulja zajednička podsekvenca), koji može biti koristan pri usporedbi RNA i DNA sekvenci.
Izvor: opennet.ru
