This project implements an in-memory key-value storage that exposes an RESTful API.
The API centers around the values
resource.
Following standard REST conventions, the API can be used as one would expect.
PUT /values
{
"key": "...",
"value": "..."
}
GET /values/<key>
GET /values
As this project was mainly done for learning purposes, all fundamental data structures needed for the storage have been implemented.
Uses the Doubly Linked List
as a foundation for its buckets.
Supports the following standard operations:
- Put
- Get
- Remove
- Automatic
rehashing
in case a specificload factor
(amount of values stored in relation to available buckets) is reached - Thread safety through
Read-Write-Locks
to optimize for performance
Supports the following standard operations:
- Add
- RemoveByKey
- Get
- pop