Made with Elixir

Latest Docker Image Version

License

Documentation

An in-memory database similar to Redis, built using Elixir.

Information

AllyDB is a database that is built using Elixir.

It is mostly a learning project, but I will try to make it as usable as possible.

However, if you want to learn how to build a similar project, you can use this project as a reference.

Roadmap

  • Basic key value store
  • Lists
  • Usage Guide
  • Persistence
  • Hashes
  • Sets
  • Sorted Sets
  • Pub/Sub

Performance Roadmap

(?) means that the item is an idea, but it is unclear how it will be implemented, or how the implementation will look like.

  • Better usage of OTP (?)
  • Better usage of ETS (?)
  • Optimize persistence (?)

Development Roadmap

  • Testing
  • Improve the naming of things in the code

Usage

Environment Variables

Name Description Default
ALLYDB_PORT The port on which the server will listen 4000
PERSISTENCE_LOCATION The location where the database will be persisted allydb.tab
PERSISTENCE_INTERVAL The interval at which the database will be persisted 3000
LOG_PERSISTENCE_LOCATION The location where the log file will be stored allydb.log

Installation

Using Docker

You can use the docker image to run the database.

Build from source

You can also build the project from source.

Documentation

You can find the documentation here.

Example Usage

Basic Key Value Store

Lists
Hashes
Persistence

The database is persisted to an append only log file. This means that the database can be restored to a previous state.

The database is also persisted on a regular interval, in case something happens to the log file.

The interval can be configured using the PERSISTENCE_INTERVAL environment variable. The default value is 3000ms.

License

AllyDB is licensed under the Apache License 2.0. You can find the license here.

Read More

By |2023-02-20T00:22:55+00:00February 20th, 2023|Education|0 Comments

Leave A Comment