1) Modern NICs have multiple queues, and are best used with multiple threads.
2) A single core is not capable of saturating DRAM bandwidth.
3) Sharding is annoying, the more you can get out of one instance the better.
Those were the reasons we made the attempt. It certainly does make the code more complicated, but there's no feature in Redis that prevents it. The beauty of open source is you get a chance to try these things.
1) Modern NICs have multiple queues, and are best used with multiple threads.
2) A single core is not capable of saturating DRAM bandwidth.
3) Sharding is annoying, the more you can get out of one instance the better.
Those were the reasons we made the attempt. It certainly does make the code more complicated, but there's no feature in Redis that prevents it. The beauty of open source is you get a chance to try these things.
Cutting latency in half was a big benefit for us.