Have you benchmarked your http interface yet? No offense intended, but
I would be surprised if the parsing overhead of http, along with the
overhead of sending and receiving traffic (especially the data
copy/buffering) wouldn't significantly *reduce* the performance of the
stack.
In particular, HAProxy is the fastest known software HTTP proxy
(though it got beta SSL support in the most recent development release
:D ), and it peaks at 100k requests/second on a single machine,
without passing connections through. When using passthrough, it sees
40k requests/second. But Redis itself can handle 100k requests/second
easily across persistent connections, and with pipelining, I see
300k-400k/second without issue. With a bit of processor affinity
tweaking, I can see over 700k pipelined requests/second on a 2.4 ghz
core2 duo.
While it's awesome to want to build an http interface to Redis (thus
simplifying a variety of use-cases), note that you will likely be
slowing down Redis, and may never see a payoff in your load-balancing
proxy, unless each of your requests is expensive (large sort, union,
intersection, or difference operations).
Regards,
- Josiah
>
https://groups.google.com/d/msg/redis-db/-/Hfgv0mMRDHMJ.