datubāzes izlaidums , kas pieder pie NoSQL sistēmu klases. Redis nodrošina līdzīgas funkcijas kā Memcached datu glabāšanai atslēgu/vērtību formātā, paplašinātas ar strukturētu datu formātu atbalstu, piemēram, sarakstiem, hashiem un kopām, kā arī iespēju izpildīt servera pusē skriptus Lua valodā. Projekta kods ir pieejams BSD licencē. Papildu moduļi, kuros tiek piedāvātas paplašinātas iespējas korporatīvajiem lietotājiem, piemēram, RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom, kopš pagājušā gada ar RSAL īpašumtiesību licenci. Atvērtās versijas datu moduļiem tiek turpināta attīstība AGPLv3 licences ietvaros ar projekta palīdzību .
Atšķirībā no Memcached, Redis nodrošina pastāvīgu datu glabāšanu diska formātā un garantē datu bāzes saglabāšanu gadījumā, ja notiek avārija. Projekta avota kodi izplatās ar BSD licenci. Klienta bibliotēkas ir pieejamas lielākajai daļai populāro valodu, tostarp Perl, Python, PHP, Java, Ruby un Tcl. Redis atbalsta transakcijas, kas ļauj izpildīt komandu grupu vienā solī, garantējot konsekvenci un secību (citu pieprasījumu komandas nevar iejaukties) noteikta komandu kopuma izpildē, un, ja rodas problēmas, ļauj atgriezt izmaiņas. Visi dati tiek pilnībā kešoti operatīvajā atmiņā.
Datu pārvaldībai tiek nodrošināti tādi komandu rīki kā inkrementēšana/dekrementēšana, standarta operācijas ar sarakstiem un kopām (apvienošana, krustojums), atslēgu pārdēvēšana, vairāku atlase un šķirošanas funkcijas. Atbalstīti divi uzglabāšanas režīmi: periodiska datu sinhronizācija uz diska un izmaiņu žurnāla uzturēšana diskā. Otrajā gadījumā tiek garantēta visu izmaiņu pilnīga saglabāšana. Ir iespējama master-slave datu replikācija uz vairākiem serveriem, ko veic bez bloķēšanas režīmā. Pieejams arī ziņojumu apmaiņas režīms “publikācija/abonēšana”, kurā tiek izveidots kanāls, no kura ziņojumi tiek izplatīti klientiem pēc abonēšanas.
Galvenie , kas pievienoti Redis 6.0:
- Noklusēti ir piedāvāts jauns RESP3 protokols, taču savienojuma izveide sākas ar RESP2 režīmu, un klients pāriet uz jauno protokolu tikai tad, ja savienojuma pievienošanas laikā ir izmantota jaunā HELLO komanda. RESP3 ļauj tieši atgriezt sarežģītus datu tipus, nemainot vispārējos masīvus klienta pusē un atdalot atgrieztos tipus.
- Piekļuves kontroles sarakstu atbalsts (), kas ļauj precīzi noteikt, kuras darbības klients var veikt un kuras ne. ACL arī sniedz iespēju aizsargāties pret iespējamām kļūdām izstrādes procesā; piemēram, apstrādātājam, kuram ir atļauts veikt tikai BRPOPLPUSH darbību, var liegt citas darbības, un pat ja darba kodā nejauši tiek aizmirsts par pievienoto FLUSHALL izsaukumu novēršanas laikā, tas nenovedīs pie problēmām. ACL ieviešanas laikā nav nepieciešami papildu izdevumi, un tas praktiski neietekmē veiktspēju. ACL ir izstrādātas arī saskarnes moduļi, kas ļauj izveidot savas autentifikācijas metodes. Lai skatītu visus reģistrētos ACL pārkāpumus, ir paredzēta komanda 'ACL LOG'. Lai ģenerētu neparedzamas sesijas atslēgas, pievienota komanda 'ACL GENPASS', kas izmanto HMAC, balstoties uz SHA256.
- Atbalsts kanāla šifrēšanai starp klientu un serveri.
- datu kešatmiņas risinājumi klienta pusē. Lai saskaņotu klienta kešatmiņu ar datu bāzes stāvokli, pieejami divi režīmi: 1. Atmiņas saglabāšana serverī par iepriekš pieprasīto atslēgu, lai informētu klientu par ieraksta novecošanu klienta kešatmiņā. 2. 'Broadcasting' mehānisms, kurā klients parakstās uz noteiktiem atslēgu prefiksiem un serveris informē viņu par izmaiņām atslēgās, kuras ietilpst šajos prefiksos. 'Broadcasting' režīma priekšrocība ir tā, ka serverī netiek iztērēta papildu atmiņa kešotās vērtību kartes uzglabāšanai klienta pusē, taču mīnuss ir palielinātais pārsūtīto ziņu skaits.
- Ziņojumu starpnieks Disque, kas ļauj izmantot Redis ziņojumu rindās, ir izdalīts no pamata sastāva un .
- Pievienots , proxy starp serveru Redis klasterim, kas ļauj organizēt klienta darbu ar vairākiem Redis serveriem kā ar vienu instanci. Proxy var maršrutēt pieprasījumus uz mezgliem ar nepieciešamajiem datiem, multiplikēt savienojumus, pārrakstīt klasteri gadījumā, ja tiek konstatēti mezglu kļūmes, izpildīt pieprasījumus, kas aptver vairākus mezglus.
- Ievērojami uzlabota API moduļu rakstīšanai, būtībā pārvēršot Redis par ietvaru, kas ļauj veidot sistēmas moduļu veidā.
- Ieviests replikācijas režīms, kurā RDB faili nekavējoties tiek dzēsti pēc to izmantošanas.
- Uzlabots replikācijas protokols PSYNC2, kas ļāvis biežāk veikt daļēju resinhronizāciju, paaugstinot iespējas identificēt nobīdi, kas kopīga gan replikai, gan meistaram.
- Paātrināta RDB failu ielāde. Atkarībā no faila satura paātrinājums ir no 20 līdz 30%. Ievērojami paātrināta komandas INFO izpilde, klātesot lielam klientu skaitam.
- Pievienota jauna komanda STRALGO ar sarežģītu virknējo apstrādes algoritmu realizāciju. Šobrīd pieejams tikai viens algoritms LCS (ilgākā kopīgā subsequence), kas var būt noderīgs, salīdzinot RNS un DNS secības.
Avots: opennet.lv
