Die ersten Ausgaben des Redka-Projekts wurden veröffentlicht, das darauf abzielt, einen RESP-Protokoll- und API-zu liefern, die mit der Redis-Datenbank kompatibel sind, aber auf der SQLite-Bibliothek basieren. Die Verwendung von SQLite ermöglicht zusätzlich den Zugriff auf Daten mittels SQL, beispielsweise zur Erstellung von Berichten oder zur Datenanalyse. ACID-Transaktionen werden unterstützt. Redka kann als Server, Netzwerkempfänger für Anfragen oder als Modul für die Programmiersprache Go verwendet werden. Der Code des Projekts ist in Go geschrieben und wird unter der BSD-Lizenz verbreitet.
Aktuell unterstützt Redka Typen zur Arbeit mit Strings und Hashes sowie Befehle zur Manipulation von String-Daten, Schlüsseln, Transaktionen und Hashes. Beispielsweise stehen Befehle zur Verfügung, um einen oder mehrere an einen Schlüssel gebundene String-Werte festzulegen und abzurufen, die Lebensdauer von Schlüsseln zu bestimmen, Werte zu inkrementieren/dekrementieren, Schlüssel nach einem Muster zu suchen, Schlüssel umzubenennen, eine Reihe von Befehlen im Rahmen einer Transaktion auszuführen, Transaktionen abzubrechen und mit Feldern in Hashes zu arbeiten.
In naher Zukunft ist die Unterstützung von Listen, Sammlungen (Sets) und sortierten Sammlungen geplant. Langfristig wird die Implementierung des HyperLogLog-Algorithmus, Funktionen zur Manipulation geografischer Koordinaten und Befehle zur Interaktion mit der Publish/Subscribe-Modell erwartet. Derzeit ist keine Unterstützung für Lua-Skripte, Authentifizierung, ACL, Watch/Unwatch und die Möglichkeit der Arbeit mit mehreren Datenbanken geplant. Server Die Unterstützung von Clustern (Redis Cluster) und Monitoring (Redis Sentinel) wird definitiv nicht umgesetzt.
Die Leistungstests mit Werkzeugen aus dem Redis-Projekt haben gezeigt, dass Redka in Bezug auf die Schlüssel/Wert-Datenspeicherung aufgrund fehlender spezifischer Optimierungen um das 2- bis 6-fache hinter Redis zurückbleibt. Insbesondere hat Redis in der getesteten Umgebung 133.000 SET-Operationen pro Sekunde und 139.000 GET-Operationen pro Sekunde erreicht, während Redka lediglich 30.000 SET und 63.000 GET pro Sekunde erzielte, wenn die Datenbank im Arbeitsspeicher platziert wurde. Bei der Speicherung der Datenbank auf der Festplatte lag die Leistung von Redka bei 22.000 SET-Operationen pro Sekunde und 56.000 GET-Operationen.
Quelle: opennet.ru
