Projekt Redka rozwija implementację protokołu Redis i API na platformie SQLite

Opublikowano pierwsze wersje projektu Redka, których celem było dostarczenie protokołu RESP i API kompatybilnych z systemem Redis DBMS, ale zaimplementowanych na bazie biblioteki SQLite. Korzystanie z SQLite dodatkowo pozwala na dostęp do danych za pomocą języka SQL, na przykład w celu generowania raportów lub analizy danych. Obsługiwane jest użycie transakcji ACID. Redka może działać jako serwer przyjmujący żądania w sieci lub służyć jako moduł Go. Kod projektu jest napisany w Go i rozpowszechniany na licencji BSD.

Obecnie Redka dodała obsługę typów do pracy z ciągami i haszami, a także polecenia służące do manipulacji danymi łańcuchowymi, kluczami, transakcjami i skrótami. Na przykład dostępne są polecenia służące do ustawiania i uzyskiwania jednej lub więcej wartości ciągu powiązanych z kluczem, ustawiania czasu życia kluczy, zwiększania/zmniejszania wartości, wyszukiwania kluczy według szablonu, zmiany nazwy kluczy, wykonywania serii poleceń w ramach transakcji , anulowanie transakcji, praca z polami w skrótach.

W najbliższej przyszłości planujemy dodać obsługę list, kolekcji (zestawów) i kolekcji posortowanych. W dłuższej perspektywie oczekuje się wdrożenia algorytmu HyperLogLog, możliwości manipulowania współrzędnymi geograficznymi oraz poleceń interakcji z wykorzystaniem modelu publikowania/subskrybowania. Nie ma jeszcze planów dodania obsługi skryptów w języku Lua, uwierzytelniania, ACL, watch/unwatch oraz możliwości pracy na jednym serwerze z kilkoma bazami danych. Wsparcie dla klastrów (Redis Cluster) i monitoringu (Redis Sentinel) na pewno nie zostanie wdrożone.

Testy wydajnościowe z wykorzystaniem narzędzi z projektu Redis wykazały, że Redka jest 2-6 razy za Redisem ze względu na brak konkretnych optymalizacji przechowywania danych w formacie klucz/wartość. W szczególności w stworzonym środowisku testowym Redis wykazał wydajność 133 tys. operacji SET na sekundę i 139 tys. operacji GET na sekundę, podczas gdy wydajność Redki wyniosła 30 tys. SET na sekundę i 63 tys. GET na sekundę w sytuacji, gdy baza danych znajdował się w pamięci o dostępie swobodnym. Podczas przechowywania bazy danych na dysku wydajność Redki wyniosła 22 tys. operacji SET na sekundę i 56 tys. operacji GET na sekundę.

Źródło: opennet.ru

Dodaj komentarz