otobrglez/dojodis
{ "createdAt": "2022-08-03T07:57:21Z", "defaultBranch": "master", "description": "High-performance Redis server implemented in Scala with ZIO.", "fullName": "otobrglez/dojodis", "homepage": "", "language": "Scala", "name": "dojodis", "pushedAt": "2022-09-20T12:01:27Z", "stargazersCount": 27, "topics": [ "redis", "zio", "zio-streams" ], "updatedAt": "2025-10-26T18:03:59Z", "url": "https://github.com/otobrglez/dojodis"}dojodis 🍤
Section titled “dojodis 🍤”[dojodis] is an experimental high-performance [Redis][redis] clone written [Scala ZIO][zio].
Supported Commands
Section titled “Supported Commands”dojodis server supports the following [Redis commands][commands] !: [get], [set], [exists], [incr], [incrby], [ping], [del], [keys]
Development
Section titled “Development”sbt run
redis-cli -p 6666 set my_name "Oto Brglez"redis-cli -p 6666 get my_namecat test.txt | redis-cli -h 127.0.0.1 -p 6666Silly benchmark
Section titled “Silly benchmark”Although this is considered to be a very experimental project I was really tempted to make it compliant with [redis-benchmark] to see how it will perform.
![Simple dojodis vs. Redis v7 benchmark]!(redis-7_vs_dojodis.png)
Benchmark was ran against Redis server v=7.0.0 sha=00000000:0 malloc=libc bits=64 build=efafb97113670c08
and here are the results for the common test
suite. Raw data can be found here.
redis-benchmark -h 127.0.0.1 -p 6666 -t get,set,incr,incrby,del -n 100000 -c 4 --csvResources
Section titled “Resources”- Architecture Notes - Redis Explained
- RESP protocol spec
- A Java Parallel Server Through the Ages
- Wrapping impure code with ZIO - Pierre Ricadat
- zio-tcp - Richard Searle
- 5 lessons learned from my continuing awesome journey with ZIO - Natan Silnitsky
- Thread Pool Best Practices with ZIO - John A De Goes
- Detecting Client Disconnections Using Java Sockets - Zack West
- ZIO / ZIO
- How to talk raw Redis
- Processing ZIO effects through a pipeline - Steven Vroonland
- High-Concurrency Practices of Redis: Snap-Up System
- kpodsiad / yamlator
- Inline your boilerplate – harnessing Scala 3 metaprogramming without macros
- From Scala 2 shapeless to Scala 3
- Redis Protocol Compatibility
Authors
Section titled “Authors”- [Oto Brglez / @otobrglez][otobrglez]
[dojodis] !: https://github.com/otobrglez/dojodis
[redis] !: https://redis.io
[zio] !: https://zio.dev
[otobrglez] !: https://github.com/otobrglez
[get] !: https://redis.io/commands/get/
[set] !: https://redis.io/commands/set/
[exists] !: https://redis.io/commands/exists/
[incr] !: https://redis.io/commands/incr/
[incrby] !: https://redis.io/commands/incrby/
[ping] !: https://redis.io/commands/ping/
[commands] !: https://redis.io/commands/
[del] !: https://redis.io/del/
[keys] !: https://redis.io/commands/
[redis-benchmark] !: https://redis.io/docs/reference/optimization/benchmarks/