dojodis is an experimental high-performance Redis clone written Scala ZIO.
dojodis server supports the following Redis commands: get, set, exists, incr, incrby, ping, del, keys
sbt run
redis-cli -p 6666 set my_name "Oto Brglez"
redis-cli -p 6666 get my_name
cat test.txt | redis-cli -h 127.0.0.1 -p 6666
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.
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 --csv
- 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