redis icon indicating copy to clipboard operation
redis copied to clipboard

Redis server written in Go / Golang (prototype)


Becoming a full Redis implementation in Go

This project started to see how easy it is to implement a full Redis clone in Go. As one of the side effects, imagine you could write redis modules in Go, that would be awesome!

Get involved!

This project is in work-in-progress, so share ideas, code and have fun.

The goal is to have all features and commands like the actual redis written in C have. We are searching contributors!

Documentation

godoc: https://godoc.org/github.com/redis-go/redis

Getting Started

You can already test out the API.

To install, run:

go get -u github.com/redis-go/redis

Roadmap

  • [x] Client connection / request / respond
  • [x] RESP protocol
  • [x] able to register commands
  • [x] in-mem database
  • [x] active key expirer
  • [ ] Implementing data structures
    • [x] String
    • [x] List
    • [ ] Set
    • [ ] Sorted Set
    • [ ] Hash
    • [ ] ...
  • [ ] Tests
    • [x] For existing commands
    • [x] For key expirer
  • [ ] Alpha Release

TODO beside Roadmap

  • [ ] Persistence
  • [ ] Redis config
    • [ ] Default redis config format
    • [ ] YAML support
    • [ ] Json support
  • [ ] Pub/Sub
  • [ ] Redis modules
  • [ ] Benchmarks
  • [ ] master slaves
  • [ ] cluster
  • [ ] ...