Die ersten Ausgaben des Redka-Projekts wurden veröffentlicht, das darauf abzielt, den RESP-Protokoll und API bereitzustellen, die mit der Datenbankmanagementsystem Redis kompatibel sind, jedoch mithilfe der SQLite-Bibliothek implementiert wurden. Die Nutzung von SQLite ermöglicht zudem den Zugriff auf Daten mit der SQL-Sprache, beispielsweise zur Erstellung von Berichten oder zur Datenanalyse. Unterstützt werden ACID-Transaktionen. Redka kann entweder in Form Server, die Netzwerkabfragen annimmt, oder als Modul für die Programmiersprache Go verwendet werden. Der Code des Projekts ist in der Programmiersprache Go geschrieben und unter der BSD-Lizenz verfügbar.
Derzeit bietet Redka Unterstützung für Datentypen zum Arbeiten mit Strings und Hashes sowie für Befehle zur Manipulation von Zeichenfolgen, Schlüsseln, Transaktionen und Hashes. Beispielsweise sind Befehle verfügbar, um ein oder mehrere an einen Schlüssel gebundene String-Werte festzulegen oder abzurufen, die Lebensdauer von Schlüsseln zu definieren, Werte zu inkrementieren/dekrementieren, Schlüssel anhand von Mustern zu suchen, Schlüssel umzubenennen, eine Reihe von Befehlen innerhalb einer Transaktion auszuführen, eine Transaktion abzubrechen und mit Feldern in Hashes zu arbeiten.
In naher Zukunft soll Unterstützung für Listen, Mengen (Sets) und sortierte Mengen hinzugefügt werden. Langfristig wird die Implementierung des HyperLogLog-Algorithmus erwartet, sowie Möglichkeiten zur Manipulation geografischer Koordinaten und Befehle zur Interaktion unter Verwendung des Publish/Subscribe-Modells. Derzeit sind die Unterstützung für Lua-Skripte, Authentifizierung, ACL, Watch/Unwatch und die Möglichkeit, in einer Server oder mehrerer Datenbanken zu arbeiten, nicht in Planung. Eine Unterstützung für Cluster (Redis Cluster) und Monitoring (Redis Sentinel) wird definitiv nicht realisiert.
Leistungstests mit den Werkzeugen des Redis-Projekts zeigten, dass Redka 2- bis 6-mal hinter Redis zurückbleibt, da spezifische Optimierungen für die Speicherung von Daten im Schlüssel/Wert-Format fehlen. Insbesondere zeigte die erstellte Testumgebung, dass Redis eine Leistung von 133.000 SET-Operationen pro Sekunde und 139.000 GET-Operationen pro Sekunde demonstrierte, während die Leistung von Redka 30.000 SET pro Sekunde und 63.000 GET pro Sekunde betrug, wenn die Datenbank im Arbeitsspeicher abgelegt war. Bei der Speicherung der Datenbank auf der Festplatte betrug die Leistung von Redka 22.000 SET-Operationen pro Sekunde und 56.000 GET-Operationen pro Sekunde.
Quelle: opennet.ru
