Sono stati pubblicati i primi rilasci del progetto Redka, mirato a fornire un protocollo RESP e API compatibili con i database Redis, ma implementati sopra la libreria SQLite. L'uso di SQLite consente inoltre l'accesso ai dati tramite il linguaggio SQL, ad esempio per la creazione di report o per l'analisi dei dati. È supportato l'uso di transazioni ACID. Redka può essere eseguito in forma сервера, accettando richieste sulla rete, oppure può essere utilizzato come modulo per il linguaggio Go. Il codice del progetto è scritto in linguaggio Go e distribuito sotto licenza BSD.
Attualmente, Redka ha aggiunto supporto per tipi di dati per lavorare con stringhe e hash, nonché comandi per la manipolazione dei dati stringa, delle chiavi, delle transazioni e degli hash. Ad esempio, sono disponibili comandi per impostare e ottenere uno o più valori stringa associati a una chiave, impostare il tempo di vita delle chiavi, incrementare/decrementare valori, cercare chiavi tramite pattern, rinominare chiavi, eseguire una serie di comandi nell'ambito di una transazione, annullare una transazione e gestire i campi negli hash.
Prevediamo di aggiungere a breve il supporto per liste, collezioni (sets) e collezioni ordinate. In un futuro lontano, si prevede di implementare l'algoritmo HyperLogLog, funzionalità per la manipolazione di coordinate geografiche e comandi per l'interazione mediante il modello publish/subscribe. Al momento, non è previsto l'aggiunta di supporto per script in linguaggio Lua, autenticazione, ACL, watch/unwatch e la possibilità di operare in uno server con più database. Non sarà implementato il supporto per cluster (Redis Cluster) e monitoraggio (Redis Sentinel).
I test di prestazione utilizzando gli strumenti del progetto Redis hanno mostrato che Redka è da 2 a 6 volte più lento di Redis a causa della mancanza di ottimizzazioni specifiche per la memorizzazione dei dati nel formato chiave/valore. In particolare, nell'ambiente di test creato, Redis ha dimostrato prestazioni di 133mila operazioni SET al secondo e 139mila operazioni GET al secondo, mentre le prestazioni di Redka sono state di 30mila SET al secondo e 63mila GET al secondo quando il database era memorizzato in memoria. Quando il database era memorizzato su disco, le prestazioni di Redka erano di 22mila operazioni SET al secondo e 56mila GET al secondo.
Fonte: opennet.ru
