Introducing Redka, the innovative reimplementation of Redis leveraging the power of SQLite. With features like ACID transactions and SQL views, Redka enables data persistence without being limited by RAM. Compatible with Redis APIs, it offers both in-process and standalone server options, making it ideal for non-critical production uses.
Redka is an innovative project that aims to reimplement the core features of Redis using SQLite, ensuring full compatibility with the Redis API. With Redka, you are empowered to work with data that does not need to fit in RAM, making it a perfect solution for applications with larger data requirements.
Notable Features
- ACID Transactions: Redka supports atomic transactions, providing robust reliability for your data operations.
- SQL Views: Gain better insights and reporting capabilities through SQL views.
- Flexible Deployment: Enjoy both in-process (via a Go API) and standalone (utilizing the RESP protocol) server options.
- Redis-Compatible Commands: Use familiar commands and wire protocols while benefiting from the enhanced capabilities of SQLite.
Core Redis Data Types Supported
Redka provides full support for the five essential Redis data types:
- Strings: The fundamental type representing sequences of bytes.
- Lists: Sequences of strings, maintaining the order of insertion.
- Sets: Unordered collections consisting of unique strings.
- Hashes: Key-value maps for efficient data representation.
- Sorted Sets (Zsets): Collections of unique strings ordered by their associated scores.
Additionally, Redka offers commands for key management, server and connection management, and transaction handling.
Performance
While benchmarks indicate that Redka operates at a slower pace than Redis, it still delivers impressive performance—up to 100K operations per second on average hardware, far exceeding the needs of most typical applications. Redka efficiently stores data in a simple SQLite database schema, enhancing both performance and ease of introspection.
Contribution and Support
Redka is an open-source project sustained primarily by a dedicated individual contributor. Contributions are highly valued—if you want to make changes beyond bug fixes, please start a discussion by opening an issue. Your involvement can help shape the future of Redka.
If you find Redka beneficial, don't hesitate to give it a star on GitHub and share it with your network. Your support propels this project forward.
Stay updated with the latest features by subscribing here and explore the possibilities of combining Redis-like command capabilities with SQLite's reliability!
Redka harnesses the strengths of its foundational technologies:
- Redis, developed by Salvatore Sanfilippo
- SQLite, created by D. Richard Hipp
- RESP server implementation by [Josh Baker](https://github.