I'm interested in setting up a Redis master/slave combo, for a project that requires ridiculously fast data retrieval. What I would like (which Redis doesn't support yet) is a cluster with high availability.
The next best thing would be a master/slave pairing (which Redis does support), with an automated failover so in the event of a master failure (which Redis does not offer), so the slave will be promoted as the new master while we fix the master.
I've read vague rumours, on various blogs, that this can be accomplished with HAProxy.
Just rumours and mentions. No concrete, helpful advice or - better yet - a howto.
Have any of you ever accomplished this? How is it done?
I'll define "ridiculously fast"... the system needs to retrieve about 60 different queries in less than 50ms, and it'll need to do that (at peak times) thousands of times per second per shard.
There won't be just one shard. This master/slave pairing will be multiplied with horizontal partitioning so each shard can hold a partial corpus of the data in memory. That's a separate topic.
The data types supported by Redis are a perfect fit for the tasks being done (making it a slightly better choice than memcached), and with "pipelining", we can probably get all the data in one very fast request.
Achieving high availability - near 100% uptime - is the concern.