Opublikowano pierwsze wydania projektu Redka, który ma na celu udostępnienie protokołu RESP i API zgodnych z bazą danych Redis, ale zaimplementowanych na bibliotece SQLite. Wykorzystanie SQLite dodatkowo umożliwia dostęp do danych za pomocą języka SQL, na przykład do generowania raportów lub analizy danych. Obsługiwane jest korzystanie z transakcji ACID. Redka może działać w formie serwera, przyjmującego zapytania przez sieć, lub być używane jako moduł dla języka Go. Kod projektu napisany jest w języku Go i rozpowszechniany na licencji BSD.
Aktualnie w Redka dodano obsługę typów do pracy z łańcuchami i haszami, a także komendy do manipulacji danymi łańcuchowymi, kluczami, transakcjami i haszami. Na przykład dostępne są komendy do ustawiania i pobierania jednego lub kilku łańcuchów wartości powiązanych z kluczem, ustawiania czasu życia kluczy, inkrementacji/dekrementacji wartości, wyszukiwania kluczy według wzoru, zmiany nazw kluczy, wykonywania serii komend w ramach transakcji, anulowania transakcji oraz pracy z polami w haszach.
W najbliższym czasie planowane jest dodanie wsparcia dla list, zbiorów (sets) oraz uporządkowanych zbiorów. W odległej perspektywie przewiduje się realizację algorytmu HyperLogLog, możliwości manipulacji współrzędnymi geograficznymi oraz komendy do interakcji z wykorzystaniem modelu publish/subscribe. Na tę chwilę nie planuje się dodawania wsparcia dla skryptów w języku Lua, autoryzacji, ACL, watch/unwatch oraz możliwości pracy w jednej serwerze z kilku baz danych. Zdecydowanie nie zostanie wdrożone wsparcie dla klastrów (Redis Cluster) i monitorowania (Redis Sentinel).
Testowanie wydajności przy użyciu narzędzi z projektu Redis wykazało, że Redka jest 2-6 razy wolniejsza od Redis z powodu braku specyficznych optymalizacji dla przechowywania danych w formacie klucz/wartość. W szczególności w stworzonym środowisku testowym Redis wykazał wydajność na poziomie 133 tysięcy operacji SET na sekundę i 139 tysięcy operacji GET na sekundę, podczas gdy wydajność Redka wyniosła 30 tysięcy SET na sekundę i 63 tysiące GET na sekundę w sytuacji, gdy baza danych była przechowywana w pamięci operacyjnej. Przy przechowywaniu bazy danych na dysku wydajność Redka wyniosła 22 tysiące operacji SET na sekundę i 56 tysięcy GET na sekundę.
Źródło: opennet.ru
