Redka is a key-value database that reimplements Redis using SQL as its backend while maintaining compatibility with the Redis API.
The project solves the problem of needing Redis-like functionality without the constraint of in-memory storage or the operational overhead of running a separate server. It achieves this by implementing Redis commands and the RESP wire protocol on top of SQLite or PostgreSQL, allowing data to exceed available RAM and providing ACID transaction guarantees. The tool supports five core Redis data types—strings, lists, sets, hashes, and sorted sets—along with key management, server commands, and transactions. It can run either as an in-process Go library or as a standalone server.
Redka suits three primary scenarios. For Go applications that already use SQLite or need an embedded key-value store, it provides Redis-like features without requiring a separate server. For development and testing environments, it offers a lightweight alternative to test containers with full test isolation. For teams committed to PostgreSQL, it enables Redis-like data structures within an existing database, unifying relational and specialized data management under the same transactional guarantees. The README notes that raw performance is not a design goal; while the tool can handle tens of thousands of operations per second, it cannot match a specialized store like Redis. The project is stable for testing and non-critical production use but is in maintenance mode with no new features planned.
Development activity shows a mature, stable codebase with contributions welcome for bugfixes and issues opened for feature discussions. Testing is required for all changes, and the project maintains comprehensive documentation including command references, installation guides, usage examples, and performance benchmarks.