REDKA PROJECT IMPLEMENTS REDIS PROTOCOL AND API

The project redka has recently released its first version, aiming to provide a Resp Protocol and API that is compatible with the Redis DBMS but implemented on top of the SQLite library. By leveraging SQLite, users can apply SQL language to their data, enabling tasks such as generating reports and conducting data analysis. Moreover, the project supports acid transactions and can be run either as a server for online requests or as a GO language module. Written in Go, the project code is distributed under the BSD license.

Redka has already expanded its capabilities to include support for string and hash types, as well as commands for manipulating static data, keys, transactions, and hashes. For instance, users can perform operations like setting and retrieving string values, managing key expiration, incrementing/decrementing values, searching for keys using templates, and more. There are plans to add support for lists, collections, and sorted collections in the near future, along with features like hyperloglog algorithm implementation and geo-coordinate manipulation.

However, certain functionalities such as LUA scripting, authentication, ACL, Watch/Unwatch commands, and support for multiple databases on the same server are not currently on the roadmap for Redka. The project will also not implement clusters or monitoring using Redis Sentinel.

Performance testing conducted using instrumentation from the Redis project revealed that Redka lags behind Redis in terms of speed, primarily due to the lack of optimizations for storing data in key/value format. In a test environment, Redis outperformed Redka by processing 133 thousand SET operations per second and 139 thousand GET operations per second, while Redka achieved 30 thousand SET per second and 63 thousand GET per second when the database was in RAM. When data was stored on disk, Redka’s performance decreased to 22 thousand SET operations per second and 56 thousand GET operations per second.

/Reports, release notes, official announcements.