Les premières versions du projet Redka ont été publiées, visant à fournir le protocole RESP et une API compatibles avec les bases de données Redis, mais mises en œuvre sur la bibliothèque SQLite. L'utilisation de SQLite permet également d'accéder aux données en utilisant le langage SQL, par exemple pour la génération de rapports ou l'analyse de données. La prise en charge des transactions ACID est assurée. Redka peut être exécuté sous forme de serveurs, acceptant des requêtes sur le réseau, ou utilisé en tant que module pour le langage Go. Le code du projet est écrit en Go et distribué sous licence BSD.
Actuellement, Redka a ajouté la prise en charge des types pour travailler avec des chaînes et des hachages, ainsi que des commandes pour manipuler les données textuelles, les clés, les transactions et les hachages. Par exemple, des commandes sont disponibles pour définir et obtenir une ou plusieurs valeurs textuelles liées à une clé, définir des durées de vie pour les clés, incrémenter/décrémenter des valeurs, rechercher des clés par motif, renommer des clés, exécuter une série de commandes dans le cadre d'une transaction, annuler une transaction et travailler avec des champs dans des hachages.
Dans un avenir proche, il est prévu d'ajouter la prise en charge des listes, des ensembles (sets) et des ensembles triés. À long terme, la mise en œuvre de l'algorithme HyperLogLog, des possibilités de manipulation des coordonnées géographiques et des commandes pour interagir en utilisant le modèle publish/subscribe est attendue. Il n'est pas prévu d'ajouter pour l'instant la prise en charge des scripts en Lua, de l'authentification, des ACL, du watch/unwatch et de la possibilité de travailler sur plusieurs le serveur bases de données. Il n'y aura pas de prise en charge des clusters (Redis Cluster) ni de surveillance (Redis Sentinel).
Les tests de performance avec l'outil du projet Redis ont montré que Redka est de 2 à 6 fois moins performant que Redis en raison de l'absence d'optimisations spécifiques pour le stockage des données au format clé/valeur. En particulier, dans l'environnement de test créé, Redis a démontré une performance de 133 000 opérations SET par seconde et 139 000 opérations GET par seconde, tandis que la performance de Redka était de 30 000 SET par seconde et 63 000 GET par seconde lorsque la base de données était hébergée en mémoire vive. Lorsqu'elle est stockée sur disque, la performance de Redka est de 22 000 opérations SET par seconde et 56 000 GET par seconde.
Source : opennet.ru
