Avaldatud on andmebaasi Redis 8.4 versioon, mis kuulub NoSQL sĂŒsteemide klassi. Redis pakub funktsioone andmete salvestamiseks vĂ”tme/vÀÀrtuse formaadis, laiendatud struktureeritud andmefailide, nĂ€iteks loendite, hashide ja hulga, toetamisega ning vĂ”imalusega serveripoolsete skriptide töötlemiseks Lua keeles. Projekti kood on kirjutatud C keeles ja see levitatakse AGPLv3 litsentsi alusel.
Redis andmebaas toetab tehingute tegemist, mis vĂ”imaldavad rĂŒhmade kĂ€ske ĂŒhes sammuga tĂ€ita, tagades ĂŒhtsuse ja jĂ€rjepidevuse (teised pĂ€ringud ei saa sekkuda) antud kĂ€skude komplekti tĂ€itmisel, ja probleemide korral vĂ”imaldavad muudatused tagasi vĂ”tta. KĂ”ik andmed salvestatakse tĂ€ielikult vahemĂ€lu mĂ€llu. Klientide teegid on saadaval enamikus populaarsetes keeltes, sealhulgas Perl, Python, PHP, Java, Ruby ja Tcl.
Andmete haldamiseks on saadaval sellised kĂ€sud nagu inkrement-/dekrement, tavalised toimingud loendite ja hulkadega (ĂŒhendamine, ristumine), vĂ”tmete ĂŒmbernimetamine, mitme valiku tegemine ja sorteerimisfunktsioonid. Toetatakse kahte salvestusreĆŸiimi: andmete perioodne sĂŒnkroonimine diskiga ja muudatuste logimise pidamine. Teise juhtumi korral tagatakse kĂ”igi muudatuste tĂ€ielik sĂ€ilitamine. On vĂ”imalik korraldada master-slave andmete replikatsiooni mitmesse serverite, mis toimub blokeerimata reĆŸiimis. Saadaval on ka sĂ”numite vahetamise reĆŸiim âpublikatsioon/annetusâ, kus luuakse kanal, mille teated levivad tellijatele.
Redis 8.4 peamised muudatused:
- Lisatud kĂ€sk «FT.HYBRID», mis rakendab hĂŒbriidset otsingut, kombineerides ĂŒhes pĂ€ringus nii tĂ€isteksti- kui ka vektorialotsingu vĂ”imalused, arvestades nii otseseid vasteid kui ka tĂ€henduse lĂ€hedust. Toetatakse tulemuste agregatsiooni vĂ”imalusi, kasutades sama sĂŒntaksit nagu kĂ€sul «FT.AGGREGATE».
- Redis'i tavalistes rakendustes, nÀiteks vahemÀlu kasutamisel, on suurem lÀbilaskevÔime. NÀiteks koormuste puhul, kus on 10% kirjutamistoiminguid (SET) ja 90% lugemistoiminguid (GET) ja kus salvestatakse 1 KB suuruseid tekstivÀÀrtusi, suurenes lÀbilaskevÔime 30%.

- Otsingute (FT.SEARCH) ja tulemuste agregatsiooni (FT.AGGREGATE) operatsioonide jĂ”udlust on parandatud. Kaalutud sĂŒsteemides, kus on palju paralleelseid pĂ€ringuid, on tĂ€heldatud lĂ€bilaskevĂ”ime kasvu ja viivituste vĂ€henemist kuni 4,7 korda otsingu tegemisel ja kuni 1,4 korda tulemuste agregatsiooni korral.

- PÀringute tÀitmisel on optimeeritud mÀlu eraldamist ning antud vÔimalus seadistada kÀitumist mÀlu lÔppemise korral (OOM, out-of-memory).
- MĂ€lu tarbimine vĂ€ikeste stringide (kuni 7 baiti) sĂ€ilitamisel JSON tĂŒĂŒpi struktuurides on vĂ€henenud. NĂ€iteks, JSON massiiv, mis sisaldab 500 vĂ€ikest vĂ”tme/vÀÀrtuse paari, tarbib nĂŒĂŒd 37% vĂ€hem mĂ€lu.
- Numbriliste JSON massiivide salvestamise efektiivsust on suurendatud, kus kĂ”ik elemendid on ĂŒhte tĂŒĂŒpi (kui varem salvestati iga elemendi tĂŒĂŒp ja vÀÀrtus, siis nĂŒĂŒd salvestatakse tĂŒĂŒp ainult korra kogu massiivile). Testis nĂ”udsid sellised massiivid, kus on miljon ĂŒhesugust elementi, nĂŒĂŒd 50-92% vĂ€hem mĂ€lu sĂ”ltuvalt tĂŒĂŒbist.
- SET komandasse on lisatud valikud IFEQ, IFNE, IFDEQ ja IFDNE, mis vĂ”imaldavad ĂŒhe kĂ€su abil vĂ€rskendada stringi mĂ€rki olukordades, kus selle seotud vÀÀrtust ei ole muud kliendit muudatustega alates selle vĂ€lja toomisest.
- On lisatud kÀsk XDELEX, et aatomiliselt eemaldada stringi mÀrk, kui selle seotud vÀÀrtus ei ole muutunud alates vÀlja toomisest.
- On lisatud kÀsk DIGEST, mis tagastab rashi antud vÔtmega seotud vÀÀrtusest.
- XREADGROUP kÀsule on lisatud valik «CLAIM » ootavate (idle pending) ja tulnud (incoming) sÔnumite lugemiseks.
- On lisatud kÀsk MSETEX aatomiliseks mitme stringi vÔtme korraga seadmiseks vÔi vÀrskendamiseks, samuti nende eluaegade uuendamiseks.
- On lisatud aatomiline klastris sloti migratsiooni mehhanism (ASM â Atomic Slot Migration), mis meenutab tĂ€ielikku sĂŒnkroonselt replikatsiooni, kuid töötab individuaalsete andmete salvestamise slotide tasemel. On lisatud kĂ€sk CLUSTER MIGRATION, millega saab importida slotte teistelt sĂ”lmedelt, jĂ€lgida migratsiooni edenemist ja vajadusel mÀÀrata ootel migratsiooni toimingu tĂ€itmist.
- Lisatud kÀsk CLUSTER SLOT-STATS klastris slotipÔhiste statistika hindamiseks, nÀiteks vÔtmete arv, CPU koormus ja vÔrgu sisend/vÀljund.
Allikas: opennet.ru


