Logo de redka
La decisió de Redis de canviar el tipus de llicència per als seus productes amb la finalitat d'evitar que productes comercials continuessin abusant del projecte, no ha estat ben vist al món de l'open source per part de molts. I encara que hi ha un sector que recolza el canvi implementat, ja que cada vegada són més els que alcen la veu i expressen les seves queixes sobre els constants abusos, el canvi a Redis ha donat peu al llançament d'altres projectes i forks.
Microsoft no va desaprofitar el moment i va voler impulsar el seu projecte de codi obert Granat, també altres desenvolupadors coneguts per la comunitat van anunciar les seves solucions com va ser el cas de Drew DeVault (creador d'Hyprland) amb Redict i fins i tot la Fundació Linux també va llançar el seu fork, anomenat Valkey.
I ara, s'ha donat a conèixer un nou projecte, el qual té com a nom Redka i que té com a finalitat oferir un protocol RESP i una API compatibles amb el DBMS de Redis, però implementats sobre la biblioteca SQLite.
Sobre Redka
Redka a diferència d'altres forks i projectes que pretenen substituir Redis, ofereix una solució per gestionar dades amb rapidesa i confiança, sense les limitacions d'emmagatzematge a RAM de Redis, a més que s'enfoca en l'ús de SQLite i permet accedir a les dades mitjançant el llenguatge SQL, cosa que resulta útil per a la generació d'informes i l'anàlisi de dades. Redka admet transaccions ACID i pot funcionar com un servidor que accepta sol·licituds a través de la xarxa o com un mòdul per al llenguatge Go.
Actualment, Redka ha afegit compatibilitat amb tipus de dades per treballar amb cadenes i hashes, juntament amb ordres per manipular dades de cadenes, claus, transaccions i hashes. Per exemple, hi ha ordres disponibles per establir i obtenir valors de cadena associats a una clau, configurar l'expiració de les claus, incrementar o disminuir valors, cercar claus mitjançant plantilles, reanomenar claus i executar una sèrie d'ordres dins d'una transacció, així com cancel·lar una transacció i treballar amb camps en hashes. Alguns dels tipus d'ordres i funcions que suporta són:
- cadenes: operacions com GET, SET i INCR per a manipulació bàsica de dades.
- Llistes i conjunts: ordres com LPOP per a llistes i SADD per a conjunts.
- Hash: manipulació de parells de camp-valor amb ordres com HSET i HGET.
- Conjunts ordenats: ZADD i ZRANK per a dades ordenades amb puntuacions.
- Gestió de claus: ordres com DEL i EXPIRE per al cicle de vida de les claus.
Pel que fa a l'exercici de Redka, aquest ha demostrat a les proves de rendiment realitzades utilitzant eines del projecte Redis quedar-se molt per sota d'un rendiment òptim, ja que és de 2 a 6 vegades inferior al de Redis, principalment a causa de la manca d'optimitzacions específiques per a l'emmagatzematge de dades en format clau/valor i també que depèn de SQLite.
En un entorn de prova específic, Redis va aconseguir un rendiment de 133 mil operacions SET per segon i 139 mil operacions GET per segon, mentre que Redka va aconseguir un rendiment de 30 mil operacions SET per segon i 63 mil operacions GET per segon en tenir la base de dades a la memòria d'accés aleatori. En emmagatzemar la base de dades en disc, el rendiment de Redka es va situar en 22 mil operacions SET per segon i 56 mil operacions GET per segon.
Finalment, s'esmenta que dels plans que es tenen per a futurs llançaments sé troba afegir compatibilitat per a llistes, col·leccions (sets) i col·leccions ordenades. A llarg termini, es té en ment implementar l'algorisme HyperLogLog, la capacitat de manipular coordenades geogràfiques i ordres de publicació/subscripció.
A més esmenten que fins ara no es té contemplat el suport per a scripts en el llenguatge Lua, autenticació, llistes de control d'accés (ACL), monitoratge/desmonitoreig i la capacitat de treballar en un servidor amb múltiples bases de dades i que no s'implementarà el suport per a clústers (Redis Cluster) ni el monitoratge (Redis Sentinel).
Si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls en el següent enllaç.