An in-memory key-value database project.
- Follows RESP2/RESP3 from redis, so all redis clients are compatible
- Fully configurable via .tellyconf
- Includes command queue system using a thread
- Supports integer, double, string, null, boolean, list and hash table types
- Provides atomicity when saving to the database file
- Provides saving to the database file using a background thread
- Provides authorization system with permissions using passwords
- Uses Direct I/O for logging and database files
- Uses pipelining for combine multiple commands sent by same clients
- Supports multiple databases
- Data persists on one-file
The project is documented as follows:
| File | Includes |
|---|---|
| docs/SPECS.md | architecture of the project |
| docs/FILE.md | provided files by tellydb |
| docs/COMMANDS.md | commands and their information |
| docs/AUTH.md | authorization logic |
- Download the latest release file
- Start the server using
./telly
- Clone the repository
- Install
OpenSSLlibrary and its development headers - Install
jemalloclibrary and its development headers - Install
gmplibrary and its development headers - Install
cmaketo generate compile files - Install
gperfto generate perfect hash method - Create build directory using
mkdir buildand entercd build - Generate compilation files using
cmake ..- Compile inside the directory using
make telly, then start the server using./telly - Install your local machine using
sudo make install, then start the server usingtelly
- Compile inside the directory using
Pull docker image:
docker pull aloima/tellydbRun docker container to start the server:
docker run -d -p 6379:6379 --name telly aloima/tellydbTo get information about cli commands, use ./telly help.
Licensed under BSD-3 Clause Clear License.