https://github.com/nikhilcodes/amnesiadb
Multithreaded key value pair store using thread safe locking mechanism allowing concurrent reads
https://github.com/nikhilcodes/amnesiadb
cache-storage key-value key-value-store keydb redis-alternate server-cache
Last synced: about 1 year ago
JSON representation
Multithreaded key value pair store using thread safe locking mechanism allowing concurrent reads
- Host: GitHub
- URL: https://github.com/nikhilcodes/amnesiadb
- Owner: NikhilCodes
- License: agpl-3.0
- Created: 2021-09-11T17:08:43.000Z (almost 5 years ago)
- Default Branch: dev
- Last Pushed: 2023-03-06T16:49:29.000Z (over 3 years ago)
- Last Synced: 2025-03-31T15:48:57.452Z (about 1 year ago)
- Topics: cache-storage, key-value, key-value-store, keydb, redis-alternate, server-cache
- Language: Go
- Homepage: https://amnesiadb.nikhilcodes.in
- Size: 131 KB
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Project Amnesia
A Multi-threaded key-value pair store using thread safe locking mechanism allowing concurrent reads.
## Curious to Try it out??
Check out NodeJS client [here](https://github.com/NikhilCodes/amnesia-js).
Shell Client & Web Client Coming soon
## Documentation
### 1. Simple Key Value pair
```bash
IN: SET key42 AS something
OUT: OK
IN: GET key42
OUT: something
IN: SET key42 AS "multi word"
OUT: OK
IN: GET key42
OUT: multi word
```
### 2. Simple Key Value pair But with Expiry
```bash
IN: SET key42 AS something WHERE TTL=30s
OUT: OK
IN: GET key42
OUT: something
# After 30 seconds
IN: GET key42
OUT:
```
### 3. ...With Limited Number of Read Op
```bash
IN: SET key42 AS something WHERE NFETCH=2
OUT: OK
IN: GET key42 # First Read Op
OUT: something
IN: GET key42 # Second Read Op Now Deleting
OUT: something
IN: GET key42
OUT:
```
## TODO
- [x] Implement Thread Safe CHM
- [x] NodeJs Client
- [ ] Shell-based client
- [ ] Web Playground
- [ ] Multi Tenant