A general not for the record: At some time, we should think about placing a (configurable) time-out somewhere in the stack between here and the Redis layer.
Rationale: A single very unresponsive node, or even worse a whole unresponsive cluster (that returns no errors but no quick response either, let's say it responds after minutes or not at all, so that only a TCP timeout will strike eventually) will not impact response times with this strategy. Our farm will happily hand out hundreds of qps. The 'linger' part of this strategy, however, will correspondingly create hundreds of lingering go routines per second...