An in-memory key-value database project.
- To make it work by all redis clients, follows RESP2/RESP3
- Fully configurable via .tellyconf
- Persistency
- Holds all databases inside a file
- Provides saving database into file using an external thread asynchrously
- Atomicity on execution of saving process
- Database
- Provides many data types such as hash table, list, and double
- Includes key expiry
- Multiple databases
- Architecture
- Executes commands in a single thread sequentially
- Uses multiple threads for handling I/O requests such as reading, and writing
- Allows pipelining to combine multiple commands from a single client simultaneously
- Permissions
- Relies independent passwords to authorize clients
- Includes precise permissions for commands such as database reading, and managing clients
The project is documented as follows:
| File | Scope |
|---|---|
| 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 |
Important
It downloads dependencies and makes Docker operations, so it needs to be used via sudo.
curl -o- https://raw.githubusercontent.com/aloima/tellydb/master/install.sh | sudo bash- Download the latest release file
- Give permission to make file executable using
chmod a+x ./telly - 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
mesonandninjato configure and build the project - Install
gperfto generate perfect hash method - Configure the build directory using
meson setup build- Compile the project using
meson compile -C build, then start the server using./build/telly - Install to your local machine using
sudo meson install -C build, then start the server usingtelly - Run the test suite using
meson test -C build --verbose
- Compile the project using
Pull docker image:
docker pull aloima/tellydb # for master branch
docker pull aloima/tellydb:1.0.0 # for specific releaseRun 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.