So I really wanted to learn Clojure and get familiar with the functional
programming. As a side project I decided
to write a simple data structure server similar to Redis. It uses Redis
protocol and already supports same data structures and main commands.
So any standard redis client can be used to connect to it as well as
standard redis-benchmark tool.
Eventually I'd want to make it fast, distributed and extensible (so you can
easily add any data structures you want). But for
now I'm solving very basic problems while learning the language.
Code must be very messy and not idiomatic - I never had experience with
Lisps nor functional programming before. I kept cleaning it up, but figured
it'd be better to try to get feedback first. Would be very grateful if you
guy could point me some obvious weirdness and bad choices in code.
Also some general questions:
1. *How to achieve good throughput?* I run the same benchmarking tool as
for redis and for SET command I get ~200 operations per second (for Redis
it's 30k/sec). To implement a server I used a very simple jboss netty
example without any tweaking. What would be a bottle neck here?
2. What would be a best way to implement sorted sets (like in Redis)? I
used sorted maps and sorting them by values which I highly doubt is a
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to email@example.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
For more options, visit this group at