https://github.com/ananth-swamy/redis-from-scratch
A bare-bones redis server with persistence built from scratch
https://github.com/ananth-swamy/redis-from-scratch
from-scratch go golang inmemory-db nosql nosql-database redis redis-server
Last synced: 4 months ago
JSON representation
A bare-bones redis server with persistence built from scratch
- Host: GitHub
- URL: https://github.com/ananth-swamy/redis-from-scratch
- Owner: ANANTH-SWAMY
- Created: 2025-01-09T17:23:21.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-20T04:36:47.000Z (over 1 year ago)
- Last Synced: 2025-02-10T13:16:24.635Z (over 1 year ago)
- Topics: from-scratch, go, golang, inmemory-db, nosql, nosql-database, redis, redis-server
- Language: Go
- Homepage:
- Size: 38.1 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Redis from scratch
A stripped down redis-server clone written as a hobby project. It is not intended to be used in production. No external dependencies were used for development.
## Prequisites
Have Go installed.
## Usage
- Clone the repo
- Run by executing
```
go run .
```
- Or build and run using
```
go build . && ./redis
```
- Connect to the server with any redis client. For example, `redis-cli`. The server listens on port `6379` by default.
```
$ redis-cli
```
## Supported commands
- PING
- SET
- GET
- DEL
- MSET
- MGET
- HSET
- HGET
- HDEL
- EXISTS
- HEXISTS
## Persistence
The `encoding/gob` package is used to asynchronously create a dump of the store in a binary file called `dump.rdb` every one second. This `dump.rdb` file is used to restore the data when then server is restarted in the same directory.